题
我试图执行合并平均。我使用的代码:
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 ,它允许它找出列的数目应该是什么。
不隶属于 StackOverflow