gpt4 book ai didi

matlab - 加速用最后一个非 Nan 值替换 NaN

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:12 25 4
gpt4 key购买 nike

我想用最后一个非 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

我分析了 dylan 的解决方案、Oleg 的解决方案以及我在 4770 万长向量上的解决方案。 dylan 的时间是 12.3s,Oleg 的时间是 3.7,我的时间是 1.9。

关于matlab - 加速用最后一个非 Nan 值替换 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17240194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com