我有一个1000x500矩阵(1000行,每个对应1分钟计数,500列对应不同的高度)。我想计算10分钟的平均值(使用nanmean),这意味着我希望我的最终矩阵为100x500。是否有捷径可寻 ? 感谢您的帮助。在Matlab中将1000x500矩阵重塑为100x500
回答
重塑成10行矩阵,沿着每列适用nanmean
,重塑回500列的矩阵。让M
表示你的矩阵:
result = reshape(nanmean(reshape(M, 10, [])), [], size(M,2));
如果我正确你想要什么了解,你可以这样做:
% assuming data is your 1000x500 matrix
avgs = zeros(100, 500);
inds = 1:10;
for i = 0:99
avgs(i + 1, :) = nanmean(data(i * 10 + inds, :))
end
@knedlsepp yeap,谢谢你的提示! – VHarisop
感谢您的帮助.. – user3876557
你也可以拆分成矩阵的一百10-by-500
基质细胞; nanmean
他们沿着列,然后再把它们放在矩阵中:
avgs = cell2mat(cellfun(@(X) nanmean(X,1), mat2cell(data,10*ones(100,1),[500]), 'uni', 0));
Luis的回答完成了这个任务,不需要细胞,也不需要臭名昭着的'cellfun'。 –
@BenVoigt:确实;但有几种选择可供选择,这并没有什么坏处。 (实际上Luis在写我的初始解决方案时发布了他的解决方案:'avgs = squeeze(nanmean(重塑(data。',500,10,[]),2))。';',这当然使我由于多余的转换重新考虑答案) – knedlsepp
- 1. 在matlab中重塑矩阵
- 2. Matlab:重塑矩阵来分隔矩阵
- 3. 将3d矩阵重塑为2d矩阵
- 4. 在matlab中重塑一个矩阵
- 5. 在Matlab中重塑NxMxT矩阵
- 6. 重塑矩阵
- 7. 在Matlab中将mxn单元格阵列重塑为mxnxt三维矩阵
- 8. 使用Matlab将4d矩阵重塑成向量单元阵列
- 9. 在MATLAB重塑阵列
- 10. R中的重塑矩阵
- 11. 将3D矩阵转换/重塑为2D矩阵
- 12. 如何在Mathematica中重塑矩阵
- 13. 如何重塑矩阵?
- 14. R重塑表格矩阵
- 15. Matlab:将三维阵列重塑为二维阵列
- 16. 重塑阵列到rgb矩阵
- 17. 在MATLAB中将column_vector更改为矩阵
- 18. 重塑R中的数据矩阵
- 19. 在z方向重塑3d矩阵
- 20. numpy通过堆积列将二维矩阵重塑为三维矩阵
- 21. 如何在MATLAB中将灰度矩阵转换为RGB矩阵?
- 22. 在Matlab中将双矩阵转换为整数矩阵
- 23. 索引/在Python重塑矩阵以匹配目标矩阵
- 24. MATLAB重塑矩阵转换索引到行索引
- 25. 如何使用matlab或python重塑矩阵
- 26. 如何将像素列表重塑为RGB矩阵?
- 27. 将三列数据帧重塑为矩阵(“长”到“宽”格式)
- 28. 将结构重塑为无循环矩阵
- 29. 矩阵在Matlab中
- 30. 重塑MATLAB
非常感谢您的善意帮助。 – user3876557