你不能讓find
返回三個索引,只有兩個。第三個輸出是值,而不是索引。
我建議你得到一個單一的索引,這將是一個linear index。您可以直接將其用於A
,或使用ind2sub
轉換爲三個索引。
實施例:
A = rand(3,4,5); % example 2D array
ind = find(max(A(:))==A(:));
A(ind) % use linear index directly into A
[ii, jj, kk] = ind2sub(size(A), ind); % or convert to three indices...
A(ii, jj, kk) % ...and use them into A
此外,如果只需要最大的第一次出現(如果有不止一個),就可以使用的max
代替find
第二輸出:
A = rand(3,4,5); % example 2D array
[~, ind] = max(A(:)); % second output of this function gives position of maximum
A(ind) % use linear index directly into A
[ii, jj, kk] = ind2sub(size(A), ind); % or convert to three indices...
A(ii, jj, kk) % ...and use them into A
非常感謝! –