我有一個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