MATLAB Answers

How do I replace zeroes in a <logical> 0 and 1 array with NaNs?

72 views (last 30 days)
Hey,
I have a logical array with ones and zeroes and now I would like to replace the zeroes with NaNs but can´t find the right commend.
A(A==0) = nan; NaN's cannot be converted to logicals.
A(~A) = NaN; NaN's cannot be converted to logicals.
Also tried this: A=num2cell(A);
Who can help me out?
Greetings, A matlab hero :) A=num2cell(A);

Accepted Answer

Giorgos Papakonstantinou
Giorgos Papakonstantinou on 9 Dec 2014
Edited: Giorgos Papakonstantinou on 9 Dec 2014
It didn't work because you were trying to replace logical values (the zeros/false) with doubles (the NaN). So first, convert the A array to double.
A = double(A);
A(A==0) = NaN; % or A(~A)=NaN
Of course A will not be a logical anymore.

Community Treasure Hunt

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

Start Hunting!