作业帮 > 综合 > 作业

Matlab 编写函数,找出 n个数中的最大值和最小值及其所在位置

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/05 18:34:58
Matlab 编写函数,找出 n个数中的最大值和最小值及其所在位置
clc
clear
A=[4 8 3 9 7 1 6 5 2];
min=min(A);
max=max(A);
%m为所在行 n为所在列
[m1,n1]=find(A==min);
[m2,n2]=find(A==max);
附赠:
在MATLAB中输入符号向量或者矩阵的方法和输入数值类型的向量或者矩阵在形式上很相像,只不过要用到符号矩阵定义函数sym,或者是用到符号定义函数syms,先定义一些必要的符号变量,再像定义普通矩阵一样输入符号矩阵.
1.用命令sym定义矩阵:
这时的函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者是表达式,而且长度没有限制,只是将方括号置于用于创建符号表达式的单引号中.如下例:
例1-3
>> sym_matrix = sym('[a b c;Jack,Help Me!,NO WAY!],')
sym_matrix =
[a b c]
[Jack Help Me!NO WAY!]
>> sym_digits = sym('[1 2 3;a b c;sin(x)cos(y)tan(z)]')
sym_digits =
[1 2 3]
[a b c]
[sin(x)cos(y)tan(z)]
2.用命令syms定义矩阵
先定义矩阵中的每一个元素为一个符号变量,而后像普通矩阵一样输入符号矩阵.
例1-4
>> syms a b c ;
>> M1 = sym('Classical');
>> M2 = sym(' Jazz');
>> M3 = sym('Blues')
>> syms_matrix = [a b c; M1,M2,M3;int2str([2 3 5])]
syms_matrix =
[ a b c]
[Classical Jazz Blues]
[ 2 3 5]
把数值矩阵转化成相应的符号矩阵.
数值型和符号型在MATLAB中是不相同的,它们之间不能直接进行转化.MATLAB提供了一个将数值型转化成符号型的命令,即sym.
例1-5
>> Digit_Matrix = [1/3 sqrt(2) 3.4234;exp(0.23) log(29) 23^(-11.23)]
>> Syms_Matrix = sym(Digit_Matrix)
结果是:
Digit_Matrix =
0.3333 1.4142 3.4234
1.2586 3.3673 0.0000
Syms_Matrix =
[ 1/3,sqrt(2),17117/5000]
[5668230535726899*2^(-52),7582476122586655*2^(-51),5174709270083729*2^(-103)]
注意:矩阵是用分数形式还是浮点形式表示的,将矩阵转化成符号矩阵后,都将以最接近原值的有理数形式表示或者是函数形式表示.