Matrix dimensions must agree error in FOR loop
    7 次查看(过去 30 天)
  
       显示 更早的评论
    
Hi all, 
I am trying to do a conditional statement inside for loop, I got a very strange error of matrix dimensions must agree because I am not working with arrays at all, 
the code is the following ( I am using MATLAB 2016a):: ANY HELP PLEASEEEE
for seg_nu=1:input('enter segment numbers: ')
        z=input('Is segment parallel to the y axis y/n','s')
    if z=='n';
        z=1
    elseif z=='y';
        z=2
    else
        z=3
    end 
end 
回答(1 个)
  James Tursa
      
      
 2020-1-29
        
      编辑:James Tursa
      
      
 2020-1-29
  
      This comparison:
z == 'no'
compares z to a 1x2 array.
And this comparison
z == 'yes'
compares z to a 1x3 array.
So you are in fact dealing with arrays here.  Suppose you had entered 'yes' as the input, then guess what happens:
>> 'yes' == 'no'
Error using  == 
Matrix dimensions must agree. 
You get an error because you are comparing a 1x3 array to a 1x2 array.  To make string comparisons, use string compare functions designed for it. E.g., strcmpi
if strcmpi(z,'no') || strcmpi(z,'n')
    etc.
0 个评论
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

