【发布时间】:2016-10-08 02:46:16
【问题描述】:
a = { [5 5 5 6 ] [ Nan Nan Nan Nan]; [ 7 8 8 8 ] [1 2 3 5] }
我想用[1 1 1 1 ]替换a{1,2}
有可能吗?因为我试过这个功能:
function k = non(a)
[l ,c ] = size(a);
for i= 1 : l
for j =1 : c
if a{i,j} == [ NaN NaN NaN NaN ]
k{i,j} = [ 1 1 1 1]
else
k{i,j} = a{i,j} ;
end
end
end
end
但它不起作用。
【问题讨论】:
-
您应该使用
isequal(a{i,j}, [NaN, NaN, NaN, NaN])而不是a{i,j} == [NaN, NaN, NaN, NaN]。还有其他方法可以改进此代码,但您应该先尝试一下。 -
@ParagS.Chandakkar:不,你不能用
NaNs 做到这一点!NaN值永远不等于任何东西,甚至不等于它本身!试试isequal(NaN, NaN),你会发现它是 False (0)!你可能在想isnan()。 -
@gariepy 我知道...我不明白我在写这篇文章时在想什么!