2015-10-07 103 views
0

我正在嘗試查找具有最大值的矩陣A的條目。 我已經生成矩陣A,我怎麼能問MATLAB來除了返回四個指標,以矩陣內的條目的最大值找到四維矩陣的最大值以及索引

for i = 1:size(CB,2) 
    for j=1:size(CB,2) 
     for k=1:size(CB,2) 
      for l=1:size(CB,2) 
       A(i,j,k,l)= (abs(conj(transpose([CB(:,i); CB(:,j)]))*MATRIX* [CB(:,k); CB(:,l)])^2); 
      end 
     end 
    end 
end 

回答

5

您可以使用maxind2sub組合:

a = rand(5, 5, 5, 5); 

[maxa, maxidx] = max(a(:)); 
[I, J, K, L] = ind2sub(size(a), maxidx); 

,我們可以測試:

>> a(I, J, K, L) == maxa 

ans = 

    1 

這種工作方式是,我們收到linear index來自max命令的第二個輸出。我使用了colon operatormax,所以我們的輸入實際上是一個長整型向量a,輸出是整個矩陣的最大值maxa,以及該列向量maxidx中該值的位置。然後,您可以使用ind2subsize將該線性索引轉換爲矩陣的下標。

4

使用1D索引:

[M,I] = max(A(:));

I然後在A其中M所在(即M = A(I)

然後,你需要使用下面從1D索引轉換指數到4D索引:

[a,b,c,d] = ind2sub(size(A),I);

相關問題