gtd*_*vel 4 matlab average vector
我想在Matlab中平均一个向量的每3个值,然后将平均值分配给产生它的元素.
例子:
x=[1:12];
y=%The averaging operation;
Run Code Online (Sandbox Code Playgroud)
手术后
y=
[2 2 2 5 5 5 8 8 8 11 11 11]
Run Code Online (Sandbox Code Playgroud)
因此,产生的矢量具有相同的大小,并且每3个值的跳跃平均值替换用于产生平均值的值(即1 2 3
,由三个值的平均值替换2 2 2
).有没有循环的方法吗?
我希望这是有道理的.
谢谢.
我会这样走:
重塑矢量,使其为3×x矩阵:
x=[1:12];
xx=reshape(x,3,[]);
% xx is now [1 4 7 10; 2 5 8 11; 3 6 9 12]
Run Code Online (Sandbox Code Playgroud)
之后
yy = sum(xx,1)./size(xx,1)
Run Code Online (Sandbox Code Playgroud)
现在
y = reshape(repmat(yy, size(xx,1),1),1,[])
Run Code Online (Sandbox Code Playgroud)
产生你想要的结果.
您的参数3
(表示值的数量)仅在一个地方使用,并且可以根据需要轻松修改.
归档时间: |
|
查看次数: |
22685 次 |
最近记录: |