我有一個4D的測量數組在MATLAB中。每個維度表示測量的不同參數。我想找到每個的最大值和最小值以及索引(即哪個參數)。如何在MATLAB中找到多維矩陣的最大值或最小值?
這樣做的最佳方法是什麼?我想我可以在每個維度中取最大值的最大值,但這看起來像是一個混合物。
我有一個4D的測量數組在MATLAB中。每個維度表示測量的不同參數。我想找到每個的最大值和最小值以及索引(即哪個參數)。如何在MATLAB中找到多維矩陣的最大值或最小值?
這樣做的最佳方法是什麼?我想我可以在每個維度中取最大值的最大值,但這看起來像是一個混合物。
簡單的例子:
%# random 4 d array with different size in each dim
A = rand([3,3,3,5]);
%# finds the max of A and its position, when A is viewed as a 1D array
[max_val, position] = max(A(:));
%#transform the index in the 1D view to 4 indices, given the size of A
[i,j,k,l] = ind2sub(size(A),position);
中尋找最小留下作爲一個練習:)。
以下評論: 如果你不知道你的數組A的維數,因此不能寫「」的一部分,用這一招:
indices = cell(1,length(size(A)));
[indices{:}] = ind2sub(size(A),position);
爲二維數組,說我 您可以使用兩次最小/最大功能。對於n維數組,n次n。 如:a=[2 3 4; 5 6 7; -2 7 87; 911 7 34];
for minimum: min(min(a,[],1))
-> the answer will be -2.
你可以把最小/最大尺寸參數,以2爲好。因爲這是調用函數兩次,第二次選擇維度u的最小/最大元素向量。
同樣,你可以做(max(max(a,[],1))
找出最大值。
雖然明確的問題是在被標記的僞裝中回答的,但這裏的所有答案都回答了標題中的問題。這是兩種截然不同的情況,我不同意重複的標誌。 – excaza 2016-02-10 19:38:21