我试图用前一行中元素的值替换所有矩阵的NaN值。我怎样才能做到这一点?这就是我尝试过的(仅针对第一列)但不知何故它不起作用......
for i=1:1935 %number of rows
if RSPB0916v05NEW5(i,1)==NaN
RSPB0916v05NEW5(i,1) = RSPB0916v05NEW5((i-1),1)
end
end
非常感谢你的帮助,非常感谢!
最好,
迈克尔
答案 0 :(得分:1)
假设您在第一行没有NaN
,并且记住NaN is never equal to NaN:
for ii=2:size(RSPB0916v05NEW5,1)%number of rows
idx=find(isnan(RSPB0916v05NEW5(ii,:))); % find the index of NaNs
RSPB0916v05NEW5(ii,indx)=RSPB0916v05NEW5(ii-1,indx); % replace them from the previous row
end
请注意,如果第一行的值为NaN
,则需要单独处理。