If statement in loop with AND OR operands

2 vues (au cours des 30 derniers jours)
DavidL88
DavidL88 le 10 Nov 2021
Commenté : DavidL88 le 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'])

Réponse acceptée

James Tursa
James Tursa le 10 Nov 2021
Modifié(e) : James Tursa le 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.

Plus de réponses (0)

Catégories

En savoir plus sur Data Distribution Plots dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by