我试图执行合并平均。我使用的代码:

Avg = mean(reshape(a,300,144,27));
AvgF = squeeze(Avg);

最后一行摆脱单尺寸。

所以可以看出,我平均超过300点。能正常工作,除了倍时,我有点的总数不等于的144 * 300的倍数。

有没有办法让这个平均装箱工作,即使点的总数不是144 * 300?

的倍数

修改很抱歉,如果我的问题响起混淆。为了澄清...

我有43200行和27列的文件。我通过像素合并在时间300行,该装置在所述端我留下大小的矩阵的 144由-27

是平均

我的,因为我写的代码,它上面的作品,只有当我有整整43200行。在某些情况下,我有43199,43194等。当我行的总数是300的倍数(块大小)的重塑功能工作。有没有办法让这个分档平均工作时,我行的总数不是300的倍数?

有帮助吗?

解决方案

我想我更好地了解现在的问题...

如果a是从文件中读取数据(大小 n乘27 ,其中N是理想43200),那么我想你想做到以下几点:

nRemove = rem(size(a,1),300);  %# Find the number of points to remove
a = a(1:end-nRemove,:);        %# Trim points to make an even multiple of 300
Avg = mean(reshape(a,300,[],27));
AvgF = squeeze(Avg);

这将删除这样的点,在a行数将是300。然后你重塑的倍数,平均应该工作。请注意,我用[]在调用 RESHAPE ,它允许它找出列的数目应该是什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top