我想用最后一个非 NaN 值替换向量中的所有 NaN
input = [1 2 3 NaN NaN 2];
output = [1 2 3 3 3 2];
我想尝试加快已有的循环速度
input = [1 2 3 NaN NaN 2];
if isnan(input(1))
input(1) = 0;
end
for i= 2:numel(input)
if isnan(input(i))
input(i) = input(i-1);
end
end
提前致谢
由于您需要先前的非 NaN 值,因此我假设第一个值必须是数字。
while(any(isnan(input)))
input(isnan(input)) = input(find(isnan(input))-1);
end
我在 4770 万长向量上分析了 dylan 的解决方案、Oleg 的解决方案和我的解决方案。迪伦的时间是 12.3 秒,奥列格是 3.7 秒,我的时间是 1.9 秒。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)