我怎么把一个向量的平均每n值吗?

805(30天)
我有一些数据脉冲率和样本是在1000 Hz每毫秒(一个样本),太大了我想看到的东西。向量是399277 x1和我希望能够平均每1000值,这一数字在400年左右的新向量x1。有什么方法吗?
谢谢

接受的答案

马修Eicholtz
马修Eicholtz 2013年6月27日
试试这个…
n = 1000;%的平均每n值
一个=重塑(cumsum ((n, 10), 2), [], 1);%任意数据
b = arrayfun (@ (i)的意思是((我+ n - 1)), 1: n:长度(a) - n + 1) ';%的平均向量
9日评论

登录置评。

更多的答案(4)

1月
1月 2013年6月28日
编辑:1月 2019年5月17日
x =兰德(399277 1);%的一些示例数据
n = 1000;%创建的元素数量意味着结束
s1 =大小(x, 1);n %找到下一个小的倍数
m = s1 - mod (s1, n);
y =重塑(x (1: m), n, []);%重塑x [m / n]矩阵
Avg = ' ((y, 1) / n);%计算平均在1日暗淡
10评论

登录置评。


图像分析
图像分析 2013年6月27日
编辑:图像分析 2019年1月5日
这是我怎么做(另一种方式),使用blockproc在100年平均元素长块“跳跃”:
%创建示例数据
PulseRateF =兰德(399277 1);
%定义块参数。平均在100行1列宽的窗口。
blockSize =[1] 1000年;
%块处理图像代替每一个元素
% 100元素的均值像素块的块。
%,定义使用的平均函数blockproc ()。
meanFilterFunction = @ (theBlockStructure)非常刻薄(theBlockStructure.data (:));
现在实际的平均百分比(块平均尺寸小一点的数组)。
blockAveragedDownSignal = blockproc (PulseRateF blockSize meanFilterFunction);
%我们检查输出尺寸。
(行、列)=大小(blockAveragedDownSignal)
5个评论
1月
1月 2019年5月16日
看一下代码:这些数字是变量的大小 blockAveragedDownSignal

登录置评。


安德烈Bobrov
安德烈Bobrov 2013年6月28日
编辑:安德烈Bobrov 2017年7月28日
x =兰迪(1000、399277、1);
n = 1000;
m =元素个数(x);
= nanmean(重塑([x(:);南(mod (- m, n), 1)), n, []));
= accumarray(装天花板((1:元素个数(x)) / 1000)”, [] x (:) @mean);
3评论

登录置评。


社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!