Basic comparison between columns
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello all,
Let's say I have a 10 x 10 matrix filled with numbers (10 x 10 double). When the value 999 is found (anywhere) the value in the row on the right-hand side must be 9 or it's an error. I would have thought that:
if Z(:,1:end) == 999 & Z(:,2:end)~=9
disp('error)
return
end
would work but it doesn't.
Any ideas? Thank you
1 commentaire
the cyclist
le 12 Avr 2017
Modifié(e) : the cyclist
le 12 Avr 2017
When you say "right-hand side", do you mean the element just the right of each occurrence of 999 needs to be equal to 9, or that 9 needs to be in the right-most column of the matrix?
How should it be handled if 999 is in the right-most column?
Réponse acceptée
the cyclist
le 12 Avr 2017
Modifié(e) : the cyclist
le 12 Avr 2017
Assuming 9 needs to be just to the right of 999 (and not handling the last column at all), I would probably do this as follows:
conditionFail = Z(:,1:end-1)==999 & not(Z(:,2:end)==9)
if any(conditionFail(:))
disp('error)
return
end
It is possible to put all the code into if statement (without needing to pre-specify the condition), like this ...
if any(any(Z(:,1:end-1)==999 & not(Z(:,2:end)==9)))
disp('error)
return
end
but I think that is more obfuscated.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Simscape Electrical 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!