If statement in loop with AND OR operands

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

0 Stimmen

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 Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 10 Nov. 2021

Kommentiert:

am 10 Nov. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by