Octave 计算从第二个一矢量化实现开始的所有元素的行向量中的前一个和下一个元素的平均值
我想计算每个元素的平均值,行向量中的前一个和下一个,从第二个元素开始计算所有元素的平均值,我想用一个向量化的实现来完成 假设我有这个行向量:Octave 计算从第二个一矢量化实现开始的所有元素的行向量中的前一个和下一个元素的平均值,octave,Octave,我想计算每个元素的平均值,行向量中的前一个和下一个,从第二个元素开始计算所有元素的平均值,我想用一个向量化的实现来完成 假设我有这个行向量: a=[4,7,1,3,2]; 我想得到的是: b=[4,3.66,2,1.66]; 这是随后三个三联体的平均值: [4 7 1],[7 1 3],[1 3 2],[3 2 0](零点是常规值)。 顺便说一下,两个数字的近似值在这里是不相关的,只是为了这个例子 我想出了以下代码: a=[4 7 1 3 2]; 函数移位=生成移位值(rowVec) 移位
a=[4,7,1,3,2];
我想得到的是:
b=[4,3.66,2,1.66];
这是随后三个三联体的平均值:[4 7 1],[7 1 3],[1 3 2],[3 2 0](零点是常规值)。
顺便说一下,两个数字的近似值在这里是不相关的,只是为了这个例子
我想出了以下代码:
a=[4 7 1 3 2];
函数移位=生成移位值(rowVec)
移位=行向量;
对于i=2:3
移位(i,:)=[rowVec(1,i:end),零(1,i-1)];
外循环
端功能
b=平均值(生成移位值(a)(:,1:end-1),1)
但我想要的是一个完全矢量化的实现。
可能吗?有什么想法吗? 非常感谢 我会这样做:
a=[4 7 1 3 2]
n=3;
b=conv(a,one(n,1))/n;
b=b(3:end-1)
a=
4 7 1 3 2
b=
4.00000 3.66667 2.00000 1.66667
人们可以很容易地为任意数量的要平均的元素和任意的“起点”建立一个广义解。如果你需要,可以在你的问题中提供一个一般性的描述。如果“特殊情况”足够,就这样
希望有帮助
我会这样做:
a=[4 7 1 3 2]
n=3;
b=conv(a,one(n,1))/n;
b=b(3:end-1)
a=
4 7 1 3 2
b=
4.00000 3.66667 2.00000 1.66667
人们可以很容易地为任意数量的要平均的元素和任意的“起点”建立一个广义解。如果你需要,可以在你的问题中提供一个一般性的描述。如果“特殊情况”足够,就这样
希望有帮助 是的,非常有用,谢谢!我会按照你的建议,尽快对我的问题进行更全面的描述。P,这非常有帮助,谢谢!我会按照你的建议,尽快对我的问题进行更全面的描述