substituting value in matrix does not work for some reason

3 次查看(过去 30 天)
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

采纳的回答

Kelly Kearney
Kelly Kearney 2014-11-18
编辑:Kelly Kearney 2014-11-18
You can't use == with NaNs:
>> NaN == NaN
ans =
0
Use isnan instead:
B(isnan(A)) = NaN;

更多回答(1 个)

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

类别

Help CenterFile Exchange 中查找有关 Operators and Elementary Operations 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by