找到四维矩阵的最大值以及索引

时间:2015-10-07 14:28:41

标签: matlab

我正在尝试找到具有最大值的矩阵A的条目。 我已经生成了矩阵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

2 个答案:

答案 0 :(得分: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

这种方式的工作方式是我们从max命令的第二个输出中收到linear index。我将colon operatormax一起使用,因此我们的输入实际上是a的一个长列向量,输出是整个矩阵maxa的最大值,以及列值向量maxidx中该值的位置。然后,您可以将ind2subsize一起使用,将该线性索引转换为矩阵的下标。

答案 1 :(得分:4)

使用1-D索引:

method_info

method_infoAnnotationDefaultvalue()所在的索引(即[M,I] = max(A(:));

然后,您需要使用以下内容将1D索引转换为4D索引:

I