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

Hen*_*nry 0 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
Run Code Online (Sandbox Code Playgroud)

exc*_*aza 5

您可以使用组合maxind2sub:

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

[maxa, maxidx] = max(a(:));
[I, J, K, L] = ind2sub(size(a), maxidx);
Run Code Online (Sandbox Code Playgroud)

我们可以测试哪个:

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

ans =

     1
Run Code Online (Sandbox Code Playgroud)

这种方式的工作方式是我们从命令的第二个输出接收一个线性索引max.我使用了冒号运算符,max所以我们的输入实际上是一个长列向量a,输出是整个矩阵的最大值maxa,以及列向量中该值的位置maxidx.然后ind2sub,您可以使用with size将该线性索引转换为矩阵的下标.