用matlab求三维矩阵元素的最值以及对应的位置

用matlab求三维矩阵元素的最值以及对应的位置,第1张

[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的随机数组,然后根据冒泡法对等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10165077.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存