If statement in loop with AND OR operands

1 Ansicht (letzte 30 Tage)
DavidL88
DavidL88 am 10 Nov. 2021
Kommentiert: DavidL88 am 10 Nov. 2021
I need an IF statement in a loop. I need a part of a script to skip where;
(Outcome is 11_right OR Outcome is 21_right) AND (ERP = earlyP3)
Tried both lines below but get "Operands to the || and && operators must be convertible to logical scalar values."
if ((Outcome{j} == '11_right') || (Outcome{j} == '21_right')) && (ERP{l} == 'earlyP3')
Also tried
if ismember(Outcome{j}, ['11_right', '21_right']) && ismember(ERP{l}, ['earlyP3'])

Akzeptierte Antwort

James Tursa
James Tursa am 10 Nov. 2021
Bearbeitet: James Tursa am 10 Nov. 2021
The problem is that the comparison Outcome{j} == '11_right' is an array comparison, not a scalar comparison. I.e., the string is an array of characters, so the == operation compares each element and gives an array result. What you want to use is a string comparison function such as strcmp. E.g.,
strcmp(Outcome{j},'11_right')
And there are related functions such as strcmpi that ignore upper vs lower case in the comparison, etc.

Weitere Antworten (0)

Kategorien

Mehr zu Operators and Elementary Operations finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by