Nat*_*man 10 indexing matlab max min multidimensional-array
我在MATLAB中有一个4D测量数组.每个维度代表测量的不同参数.我想找到每个的最大值和最小值以及索引(即哪个参数).
最好的方法是什么?我想我可以在每个维度中取最大值的最大值,但这看起来像一个kludge.
Adr*_*ien 34
快速举例:
%# 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);
Run Code Online (Sandbox Code Playgroud)
找到最小值留作练习:).
评论之后:如果您不知道阵列A的维数,因此无法编写" [i,j,k,l] ="部分,请使用此技巧:
indices = cell(1,length(size(A)));
[indices{:}] = ind2sub(size(A),position);
Run Code Online (Sandbox Code Playgroud)