MATLAB Answers

How to use for loop and if else condition for multiple conditions

3 views (last 30 days)
I am writing a code for Pass/Fail criteria for a application in which if two given conditions are satisfied then it will be pass or it will fail. but I am getting error as,
'Operands to the || and && operators must be convertible to logical scalar values.'
suggest me correction in my code
Thank u in advance!!
for system = 1
if ((A == 45) && (0.8 < B < 1.2))
display('system function - PASS');
else
display('system function - FAIL');
end
end

  0 Comments

Sign in to comment.

Accepted Answer

John D'Errico
John D'Errico on 25 Mar 2020
Edited: John D'Errico on 25 Mar 2020
First, you don'r need a for loop that runs over system, sine you re just assigning it one value! That is, this:
for system = 1
is silly and unecessary. Just write
system = 1;
(removing the now spurious end that went with the for, of course.)
Next, the if is written incorrectly, as MATLAB told you. Just because it is common mathematical shorthand to write this:
(0.8 < B < 1.2)
does not make it work as you wish in MATLAB. Split it into two tests, which is what the shorthand implies anyway.
if ((A == 45) && (0.8 < B) && (B < 1.2))
Finally, what was the immediate reason why your code failed in the first place?
'Operands to the || and && operators must be convertible to logical scalar values.'
That tells you either A or B, or both of them, were not scalar variables. You cannot have an if statement that loops over a vector or array. That is, an if statement is not an implied loop.
I would also STRONGLY recommend that you read the getting started tutorials. If you have made 3 basic mistakes in your first 3 lines of code, this tells me you never bothered to read any documentation. READ THE MANUAL. It was put there to get you started.

  1 Comment

Ashwini  More
Ashwini More on 25 Mar 2020
Thank you for your help and suggestion!!
but I want to clarify that this code is not for one set of values, actually it is for large data in which 'system' value can be '0' or '1' and hence I am using for loop
here A & B are not scalar variables as both have number of values i.e. it is vector. and I want to apply to code for this range that for certain period, system= 1, and for that range, these both conditions should be satisfy or it will fail system function.
So, how can I update my code to get the result for vector or array.

Sign in to comment.

More Answers (0)

Sign in to answer this question.