Checking a specific element of 4x1 matrix being 1

1 visualización (últimos 30 días)
Das Siddharth
Das Siddharth el 25 de Abr. de 2021
Comentada: Das Siddharth el 26 de Abr. de 2021
I am trying this very simple code in which I want to check a particular element of this 4x1 matrix whether it is 1 or not. For some reason the entire code is skipped and not even showing anything.
for i=1:4
if probFinal(i,1) == 1
disp('Equal');
end
end
Some values of probFinal are [1.00000000000000 ; 0 ; 5.00468046766525e-34 ;0] && [0 ; 1.00000000000000 ; 0 ; 5.00468046766525e-34] and all the permutation including these values only.

Respuesta aceptada

DGM
DGM el 25 de Abr. de 2021
Editada: DGM el 25 de Abr. de 2021
More than likely, this is a case of rounding error. Beware strict equality tests with floating point numbers. That 1.000000000 isn't 1. It's approximately 1. You should consider testing against a tolerance:
tol=1E-12
for i=1:4
if abs(probFinal(i,1)-1)<=tol
% do things
end
end
  1 comentario
Das Siddharth
Das Siddharth el 26 de Abr. de 2021
Thank you so much DGM. I didn't realize this could be it. I thought MATLAB would understand anyway, sigh. I thank you again.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by