
[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];%最大值位置下标
具体设置步骤如下:
1、打开MATLAB软件,可以使用ortrows函数,在命令行窗口内打入help sortrows,就会出现以下画面,就如下图所示,根据出现的提示进行下一步进程。
2、有了函数之后,这时需要创建一个矩阵,矩阵a为3行3列,可以输入“sortrows(a,1)”,就会看到以下画面,如下图所示,这个函数是对整个矩阵按第一列进行升序排序。
3、输入完之后,既可以在命令行窗口中点击回车按钮,这时就会看到以下画面,如下图所示,这就是排序的效果。
4、接着在下方输入“sortrows(a,2)”,这个意思就是对第二列进行排序,就会看到以下画面,如下图所示,就按第二列对矩阵进行排序,可以看到行跟着变动。
a=randperm(1000,20);
n=length(a);
for j=1:n
for i=1:n-j
if a(i)>a(i+1)
temp=a(i);
a(i)=a(i+1);
a(i+1)=temp;
end
end
end
a
%冒泡法排序
a=input('输入数据:') ;
n=length(a); %求输入数的个数
i=1;j=1; %赋初值
for j=1:n %进行n次才可互换完
for i=2:n %比较相邻两数的大小
if a(i-1)>a(i)
b=a(i);
a(i)=a(i-1);
a(i-1)=b; %比较相邻两数的大小,若前大后小则互换位置
end
end
n=n-1; %最后一位不用比较
end
a
个人建议学matlab关键是懂C语言,然后再知道一些matlab的常用函数和与C的简洁之处,在matlab中边编写程序边调试学的最快。
语法规则如下:
还有其他的continue,break语句与c语言类似,而input()的用法与python类似。
此外c语言中的”!“在matlab中用”~“
在matlab中对于自带的函数可以直接调用,若是自写函数,如冒泡排序算法
新建脚本后,保存为BubbleSortm, 注意文件名要与函数名一致
在调用的时候,只用新建脚本(与函数文件在同一路径下),即可直接调用
以上就是关于用matlab求三维矩阵元素的最值以及对应的位置全部的内容,包括:用matlab求三维矩阵元素的最值以及对应的位置、matlab 中,怎么让一个矩阵按某一列排列,并且行也跟着变动、用matlab生成一个取值范围为【0,1000】,长度为20的随机数组,然后根据冒泡法对等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)