我在MATLAB中有一个4D测量数组。每个维度代表测量的不同参数。我想找到每个的最大值和最小值以及索引(即哪个参数)。
最好的方法是什么?我想我可以在每个维度中取最大值的最大值,但这看起来像是一个kludge。
答案 0 :(得分: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);
找到最小值作为练习:)。
发表评论:
如果您不知道阵列A的维数,因此无法编写“[i,j,k,l] =
”部分,请使用此技巧:
indices = cell(1,length(size(A)));
[indices{:}] = ind2sub(size(A),position);
答案 1 :(得分:0)
对于二维数组,比方说我
你可以使用两次最小/最大功能。
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.
您也可以将尺寸参数min / max设置为2。因为这是两次调用函数,第二次调用维度u的最小/最大元素向量。
同样,您可以(max(max(a,[],1))
找出最大值。