NaN NaN NaN 1 NaN 21 12 NaN 21
NaN 2 15 1 NaN 20 NaN NaN NaN
NaN NaN NaN 1 NaN 23 NaN NaN NaN
若是只看前一行,第3,6,9这3列的最后一个非空元素就是21;
若是只看前两行,第3,6,9这3列的最后一个非空元素就是20;
若是只看前三行,第3,6,9这3列的最后一个非空元素就是23;
如何快速实现呢
for i = 1:size(x,1)
flag = 0; % 默认为0,如果发现非空数则置为1
for j = colNum:-1:1 % 从每行后面开始遍历
if (~isnan( col(i,j) )) % 如果该元素不是NaN则记录到table中
table = [table; i idx(j) col(i,j)];
flag = 1;
break; % 发现了非空值后则不再从后往前遍历,立即跳出循环,开始遍历下一行
end
end
if flag == 0
disp(strcat('第',num2str(i),'行指定列全是NaN'));
end
end