Checking the decimal numbers

5 visualizaciones (últimos 30 días)
inga
inga el 9 de Nov. de 2012
I have a matrix A with one column (5000x1). I want to make an if statement, which would check ONLY the decimal numbers of each row and continue with an action, if it is true. Something like this:
for i=1:5000
if decimals of A(i)=.59333 then ...
end
Is there a simple way of controlling only the decimals? Sorry for this way of writing the code, but I didn't know how else to describe it. Thanks in advance!
Ingvar
  1 comentario
Jan
Jan el 9 de Nov. de 2012
Editada: Jan el 9 de Nov. de 2012
Does "decimal" mean "fractional part"?

Iniciar sesión para comentar.

Respuestas (1)

Evan
Evan el 9 de Nov. de 2012
Editada: Evan el 9 de Nov. de 2012
mod(A(i),1)
Should tell you whether or not each element is a decimal number. If it returns a nonzero answer, you have a decimal.
So your code would look something like this:
for i = 1:5000
if mod(A(i),1)
% Your operations here
end
end
The "modulus after division" function can also operate on vectors so, depending on what you need to do in the case of a decimal number, you could maybe even eliminate your looping altogether.
  2 comentarios
Walter Roberson
Walter Roberson el 9 de Nov. de 2012
Caution, though, that checking exact decimals is usually a mistake: see http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F
Evan
Evan el 9 de Nov. de 2012
Ah, okay. It looks like this question addresses the potential issues resulting from floating-point numbers?

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by