Borrar filtros
Borrar filtros

double array of 0's and 1's conversion help

2 visualizaciones (últimos 30 días)
David C
David C el 20 de Jun. de 2012
I have an array of 0's and 1's
Im trying to convert the 0's to nans and 1's to another value.
A(find(A==1)=256; %this part works
A(find(A==0)=NaN; %this part doesn't
when i try to replace the 0's, it replaces everything in the array with NaN, even though find(A==0) does return only the indices of where that array has a 0 value.
is there technical thing I'm missing here?

Respuestas (2)

Walter Roberson
Walter Roberson el 20 de Jun. de 2012
A(A==1) = 256;
A(A==0) = NaN;
If you want to live a life of confusion, and you only have 0 and 1s in the matrix,
A = A ./ A * 256;
  4 comentarios
Walter Roberson
Walter Roberson el 20 de Jun. de 2012
Reduces the steps that can go wrong ?
David C
David C el 20 de Jun. de 2012
sorry, i just forgot to put the brackets in while typing, i have them in my actual code

Iniciar sesión para comentar.


David C
David C el 20 de Jun. de 2012
just tried
A(A==1) = 256;
A(A==0) = NaN;
and the same thing happened. The A==1 part worked, but as soon as it tried to logical index the ones that were 0, it replaced everything with NaN
  2 comentarios
Sean de Wolski
Sean de Wolski el 20 de Jun. de 2012
What happens if you run this:
A = double(rand(10)>0.5);
A(A==1) = 256;
A(A==0) = NaN;
A
Walter Roberson
Walter Roberson el 20 de Jun. de 2012
Try breaking it down and do some experiments to see which step is going wrong:
A
T = A == 0
B = A;
A(T) = NaN
B(1) = NaN
C = rand(size(A));
C(T) = NaN

Iniciar sesión para comentar.

Categorías

Más información sobre Matrices and Arrays 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