gpt4 book ai didi

matlab - 根据序列前后的值替换 NaN 序列

转载 作者:行者123 更新时间:2023-12-02 19:42:29 27 4
gpt4 key购买 nike

如果有人能帮助我解决这个问题,我将不胜感激......

我有一个向量

A = [NaN 1 1 1 1 NaN NaN NaN NaN NaN 2 2 2 NaN NaN NaN 2 NaN NaN 3 NaN NaN];

我想根据这个逻辑填充 NaN 值。

1) 如果 NaN 序列前面的值与序列后面的值不同 => 将 NaN 的一半分配给第一个值,将一半分配给第二个值

2) 如果 NaN 序列位于 2 个相等的值之间 => 用该值填充 NaN。

A 应该是:

A = [1 1 1 1 1 1 1 (1) 2 2 2 2 2 2 2 2 2 2 3 3 3] 

我在小括号内放了一个 1,因为我将该值分配给了前半部分...NaN 的序列是奇数。

最佳答案

我在手机中输入此内容,没有使用 MATLAB - 因此可能会出现一些问题。但这应该很接近:

t = 1:numel(A);
Anew = interp1(t(~isnan(A)),A(~isnan(A)),t,'nearest','extrap');

关于matlab - 根据序列前后的值替换 NaN 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26386557/

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