'Not equal too' statement not working

5 Ansichten (letzte 30 Tage)
Jonathan Riley
Jonathan Riley am 1 Dez. 2015
Bearbeitet: James Tursa am 2 Dez. 2015
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 Kommentare
Jonathan Riley
Jonathan Riley am 1 Dez. 2015
Both variables are of type 1x2 double - e.g. [5,3]
dpb
dpb am 1 Dez. 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)--

Melden Sie sich an, um zu kommentieren.

Antworten (2)

dpb
dpb am 2 Dez. 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.

James Tursa
James Tursa am 2 Dez. 2015
Bearbeitet: James Tursa am 2 Dez. 2015
Another method using the function isequal, which is useful for arrays:
if ~isequal(UserResponse,RequiredCoordinate)

Kategorien

Mehr zu Spline Postprocessing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by