substituting value in matrix does not work for some reason

2 views (last 30 days)
A = [6 9 NaN NaN 8 NaN]; B = [2 5 342 232 1 116];
sizeA = size(A);
for m = [1:1:size(2)];
if A(1,m) == NaN;
B(1,m) = NaN;
end;
end;
I was hoping B would become [2 5 NaN NaN 8 NaN], but it did not change. I would appreciate any help

Accepted Answer

Kelly Kearney
Kelly Kearney on 18 Nov 2014
Edited: Kelly Kearney on 18 Nov 2014
You can't use == with NaNs:
>> NaN == NaN
ans =
0
Use isnan instead:
B(isnan(A)) = NaN;

More Answers (1)

Kevin Claytor
Kevin Claytor on 18 Nov 2014
Logical indexing makes this much easier;
B(A==NaN) = NaN;

Categories

Find more on Numeric Types in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!