MATLAB Answers

Where is the logic failure in my code ?

1 view (last 30 days)
farzad
farzad on 27 Dec 2019
Answered: Image Analyst on 9 Jan 2020
Hi All
I have a matrix n x 1 called X , in which I want to move it up or down along vertical axis when I plot it vs time , in a way to make the mean value = 0 if it's not so I created a true false parameter as :
useMean
than can be
True
or
False
and then in the code I do :
if useMean == 'True'
if meanX <0
X= X+abs(meanX);
else
X= X-abs(meanX);
end
elseif useMean == 'False'
X=X;
end
but I noticed the code only can perform when useMean == 'True' , not the 'False' !
this way my rest of the parameters can not be calculated

  4 Comments

Show 1 older comment
farzad
farzad on 27 Dec 2019
I needed useMean only as a boolean And I also tried else, but also that one doesn't work
farzad
farzad on 27 Dec 2019
I got it , I didn't have to write 'True' but simply true, cause true gives logical value 1
Walter Roberson
Walter Roberson on 27 Dec 2019
Your code can be shortened to
if useMean
X = X - meanX;
end
with no abs() needed.

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 9 Jan 2020
Use true or false, not 'True' or 'False'. No quotes or capitalization required.
Or don't even use them at all. Your code could be:
if useMean
if meanX <0
X= X+abs(meanX);
else
X= X-abs(meanX);
end
else
X=X; % Even this is not needed.
end
but best would be to use Walter's code in the last comment above.

  0 Comments

Sign in to comment.

Sign in to answer this question.