Las respuestas dadas son los correctos. Solo quería detallar el comentario gnovice's sobre las pruebas de coma flotante.
Al comparar los números de coma flotante para la igualdad, es necesario usar un valor de tolerancia. Se usan comúnmente dos tipos de comparaciones de tolerancia: tolerancia absoluta y tolerancia relativa. (source)
Una comparación de tolerancia absoluta de a
y b
parece:
|a-b| < tol
una comparación relativa tolerancia parece:
|a-b| < tol*max(|a|,|b|) + tol_floor
Puede implementar las dos funciones como anónimos anteriores:
%# absolute tolerance equality
isequalAbs = @(x,y,tol) (abs(x-y) <= tol);
%# relative tolerance equality
isequalRel = @(x,y,tol) (abs(x-y) <= (tol*max(abs(x),abs(y)) + eps));
Luego puede usarlos como:
%# let x and y be scalars/vectors/matrices of same size
x == y
isequalAbs(x, y, 1e-6)
isequalRel(x, y, 1e-6)
Siempre, siempre vectorice el código de MATLAB cuando sea posible. – Doresoom
¿Se debe mover a http://math.stackexchange.com/? – aaronsnoswell