gpt4 book ai didi

arrays - 将每个相邻值的平均值插入原始向量

转载 作者:行者123 更新时间:2023-12-04 06:21:20 25 4
gpt4 key购买 nike

我有一个向量,我想在 MATLAB 中“填充”它,以便生成的向量是长度的两倍,额外的数据是原始相邻值的平均值。

例如。

a = [1:10]

b = a 的函数,其中 b 现在大小为 20

b = 0.5 1 1.5 2 2.5 3 3.5...... 9.5 10

最佳答案

您可以使用插值在一行中执行此操作(请注意第一个数字是 NaN,因为它实际上未定义):

interp1(2:2:length(a)*2, a, 1:length(a)*2)

我们的想法是让 x 值(即 2,4,6...)均匀分布,这样您就可以拥有单个间隔的 xi 值(即 1, 2,3,4...) 因此恰好是每个 x 值之间的一半。然后 y 点的线性插值将是它们的平均值。如果您不喜欢前面的 NaN,我留在其中主要是为了说明它未定义这一点,您可以在 interp1 中使用 'extrap' 标志,或者(更好的 imo)从 2 开始你的 xi:

interp1(2:2:length(a)*2, a, 1:length(a)*2, 'linear', 'extrap')

interp1(2:2:length(a)*2, a, 2:length(a)*2)

否则这是一个简单的矢量化方法:

a = 1:10;
t = [a(1:end-1);a(2:end];
t(2,:) = mean(t);

b = [t(:); a(end)]

关于arrays - 将每个相邻值的平均值插入原始向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22940401/

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