Effacer les filtres
Effacer les filtres

Basic comparison between columns

1 vue (au cours des 30 derniers jours)
012786534
012786534 le 12 Avr 2017
Commenté : 012786534 le 12 Avr 2017
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
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?

Connectez-vous pour commenter.

Réponse acceptée

the cyclist
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.
  1 commentaire
012786534
012786534 le 12 Avr 2017
You are right again!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Particle & Nuclear Physics 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