計算3D數組中每個「切片」的最大值及其相應索引的最快方法是什麼?如何在MATLAB中查找每個3D數組切片的最大值和位置?
2
A
回答
4
說你有A
與n
片(這裏我只是10由每片10,但是這是可以改變到任何尺寸):
A = rand(10,10,n);
你可以把它重塑到n列矩陣,則取最大值的每一列的:
[val,ind] = max(reshape(A,[],n),[],1);
第一輸出val
將與所有的最大值的n元向量,並且所述第二輸出ind
將在重塑A
其行索引。
然後你得到的分片尺寸:
sz = size(A);
,並用它來尋找每個切片行(r
),每個最大元素的列(c
):
[r,c] = ind2sub(sz(1:2),ind)
所以在這個例子中(對於A
使用rand
和10x10x6數組),最後會得到類似的結果(但是值不同):
val =
0.99861 0.98895 0.98681 0.99991 0.96057 0.99176
r =
9 7 3 8 2 9
c =
1 1 8 10 10 5
0
如果你有n
層的矩陣A,就可以申請max
功能分兩步獲得1×1 XN矩陣,最大每一層的
A = rand(10,10,n);
layer_max = max(max(A,[],1),[],2); % 1 x 1 x n matrix, use squeeze to remove extra dims
layer_max = squeeze(layer_max);
相關問題
- 1. 如何查找3D MATLAB矩陣中最大元素的位置?
- 2. 在計數和分組後查找每個ID的最大值
- 3. 如何查找矩陣中最大和最小數量的確切位置
- 4. 在每個列matlab中查找局部最大值和最小值
- 5. 3D陣列切片中最小和最大的值
- 6. 查找每個最大值設置
- 7. 如何在matlab中的多維矩陣中找到每個「切片」的最大值?
- 8. 在Matlab中找到三維數組的最小值的位置
- 9. 在最小和最大範圍表中查找值的位置
- 10. 如何在Perl中查找整數數組中的最大值和最小值?
- 11. 如何找到數組中最大值的位置?
- 12. 在MATLAB中查找曲面的最小值和最大值
- 13. 如何查找數組的最大值?
- 14. 如何查找matlab中浮點數的最小值和最大值
- 15. 將MATLAB 3D數組的每個切片除以不同的數字
- 16. 在Matlab中查找最大值
- 17. 如何在C中找到數組中最大的位置C
- 18. 如何找到一個數組的最大值和最小值
- 19. MATLAB:在陣列數據的每個區間中查找最大值?
- 20. 在Matlab中標記和查找數組元素的位置
- 21. 在Matlab中查找多個數字的最大值
- 22. 查找元組(數據庫)中的最小值和最大值
- 23. 查找五次數組中的最大值和最小值
- 24. SQL:如何在sql中查找每個組的最小值?
- 25. 查找最大值和最小值每N行的CSV數據
- 26. 查找我的數據中每60個元素的最大值-MATLAB
- 27. 查找數組中的最大值
- 28. 查找數組中的最大值
- 29. Java:查找數組中的最大值
- 30. 在MIPS中查找10個元素數組的最大值和最小值
的最佳解決方案 - 無論是最大值和索引恢復時不使用for循環。謝謝! –