Matlab:用珍贵行的值替换NaN元素值

时间:2017-03-31 10:22:08

标签: matlab matrix replace

我试图用前一行中元素的值替换所有矩阵的NaN值。我怎样才能做到这一点?这就是我尝试过的(仅针对第一列)但不知何故它不起作用......

for i=1:1935 %number of rows
if RSPB0916v05NEW5(i,1)==NaN  
    RSPB0916v05NEW5(i,1) = RSPB0916v05NEW5((i-1),1) 
end
end

非常感谢你的帮助,非常感谢!

最好,

迈克尔

1 个答案:

答案 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,则需要单独处理。