用matlab求三维矩阵元素的最值以及对应的位置
答案:2 悬赏:70 手机版
解决时间 2021-04-20 04:26
- 提问者网友:伴风望海
- 2021-04-19 22:32
用matlab求三维矩阵元素的最值以及对应的位置
最佳答案
- 五星知识达人网友:归鹤鸣
- 2021-04-19 22:38
[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];%最大值位置下标
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];%最大值位置下标
全部回答
- 1楼网友:青尢
- 2021-04-20 00:03
直接matlab编程的话就可以直接用冒泡法实现,与c很类似?for x y z from 0 to max。不同矩阵每次改最大值。(x,y,z)位置只要每次比较的时候把大的那个位置替换就行了,用Simulink模拟这个要求太高,搞不明白。追问不太明白 我读取了一张640*480的图片在matlab里变成了 三维矩阵
我想求这些数的最小值 与相应的位置追答三维的,先求z为0的那一层,可以得到一个(xy0)的最小值吧,然后再到下一层,以此类推,到最后一层,每两个比较,替换较小的那个位置,位置都是(xyz)来标识的,最后会得到最小的值和位置追问能把代码写出来吗
我想求这些数的最小值 与相应的位置追答三维的,先求z为0的那一层,可以得到一个(xy0)的最小值吧,然后再到下一层,以此类推,到最后一层,每两个比较,替换较小的那个位置,位置都是(xyz)来标识的,最后会得到最小的值和位置追问能把代码写出来吗
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯