'Not equal too' statement not working
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a program that gives the user a 5x5 grid and asks them to click on the stated coordinate. If they respond correctly, a second coordinate is generated. If not, an error message is displayed. A correct response is tested using the following code:
if UserResponse ~= RequiredCoordinate
Error.String = 'INCORRECT';
else
Error.String = '';
end
The problem is that it doesn't always work.
By not suppressing the variables I can see that the values aren't equal, however the code behaves as if they are equal, treating it like a correct response. But this problem only occurs sometimes.
I've run the code on 3 different machines, all running the same version (R2015, 1 machine runs a student license if that makes a difference) and sometimes the code runs as expected and others this problem occurs.
Can anyone suggest a solution?
Thank you.
4 commentaires
dpb
le 1 Déc 2015
Try
~all(UserResponse==RequiredCoordinate)
instead or if the values aren't integers see the FAQ (and will still need the above if is an array of coordinates rather than single value)--
Réponses (2)
dpb
le 2 Déc 2015
As noted in the above comment prior to seeing your response...
>> x=[5,3]; y=[5,2];
>> all(x==y)
ans =
0
>> y(2)=3;
>> all(x==y)
ans =
1
>>
Again, note the caution re: floating point comparisons if the values aren't integer; you'll have to use "fuzzy" comparison for a robust test.
0 commentaires
James Tursa
le 2 Déc 2015
Modifié(e) : James Tursa
le 2 Déc 2015
Another method using the function isequal, which is useful for arrays:
if ~isequal(UserResponse,RequiredCoordinate)
0 commentaires
Voir également
Catégories
En savoir plus sur Spline Postprocessing 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!