【转】Matlab寻找高维矩阵的最大值或最小值下标

转自: https://zhidao.baidu.com/question/424686356670574412.html?qbl=relate_question_0&word=matlab%20%D5%D2%C8%FD%CE%AC%BE%D8%D5%F3%B5%C4%D7%EE%D0%A1%D6%B5

[x,y,z]=meshgrid(1:7,7:14,1:3);%生成三个三维数组,以x为例
min_x=min(x(:));%计算三维维数组x的最小值
max_x=max(x(:));%计算三维维数组x的最大值

s=size(x);%计算三维维数组的大小
Lin=find(x<=min_x);%计算最小值位置的单下标
Lax=find(x>=max_x);%计算最大值位置的单下标
[i,j,k]=ind2sub(s,Lin);%将最小值单下标转为三维多下标
[m,n,p]=ind2sub(s,Lax);%将最大值单下标转为三维多下标

Loc_in=[i,j,k];%最小值位置下标
Loc_ax=[m,n,p];%最大值位置下标

猜你喜欢

转载自www.cnblogs.com/Dontstop/p/9186543.html
今日推荐