MATLAB Answers

0

how to solve 'Error using | Matrix dimensions must agree. ' ?

Asked by neda eskandari on 18 Jun 2019 at 18:25
Latest activity Commented on by neda eskandari on 18 Jun 2019 at 20:01
Hello Dears
i have the error that i mentioned in question and i do not know how i can solve it.
while (Lia2_One_Three ~= zeros(length(Lia2_One_Three),1) | Lia2_Two_Three ~= zeros(length(Lia2_Two_Three),1))
row_n2_three_step = randperm(length(area_2) / 2, n2_three_step_delayed_measurements) ;
Lia2_One_Three = ismember(row_n2_one_step, row_n2_three_step) ;
Lia2_Two_Three = ismember(row_n2_two_step, row_n2_three_step) ;
end
it seems that this error says that 'Lia2_One_Three ~= zeros(length(Lia2_One_Three)) ' and
' Lia2_Two_Three ~= zeros(length(Lia2_Two_Three))' should have same dimention. i just want to say that while the first condition or second condition is true, produce ' row_n2_three_step' again.
'Lia2_One_Three ' and ' Lia2_Two_Three ' are vectors with different dimentions.

  4 Comments

Show 1 older comment
please see 108 to 112 rows

Sign in to comment.

Tags

1 Answer

Answer by James Tursa
on 18 Jun 2019 at 19:13
Edited by James Tursa
on 18 Jun 2019 at 19:15
 Accepted Answer

Maybe this line:
while (Lia2_One_Three ~= zeros(length(Lia2_One_Three),1) | Lia2_Two_Three ~= zeros(length(Lia2_Two_Three),1))
could be this instead?
while ( any(Lia2_One_Three(:)) || any(Lia2_Two_Three(:)) )
I'm guessing a bit on what I think you want the test to do.
Note that the ~= and | operators are element-wise operators, which I am guessing is not what you really want to use here.

  5 Comments

should not we write :
while ( any(Lia2_One_Three(:) ~= 0) || any(Lia2_Two_Three(:) ~= 0) )
The any( ) functions tests for nonzeros, so the ~=0 part in your proposed code is redundant.

Sign in to comment.