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)]
注意:矩阵是用分数形式还是浮点形式表示的,将矩阵转化成符号矩阵后,都将以最接近原值的有理数形式表示或者是函数形式表示。
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-05-29
搜一下:Matlab
编写函数,找出
n个数中的最大值和最小值及其所在位置

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,或者是用到符号...

怎样在matlab中找出数组中所有的最大的值?
1、第一步,需要知道matlab数组找到所有接近某个值的点的坐标是使用“find”函数,可以在命令行窗口中输入“help find”,如下图所示,然后进入下一步。2、其次,完成上述步骤后,输入“a =[1 4 5;6 7 8;7 9 12]”,在matlab命令行窗口中创建副本数组,如下图所示,然后进入下一步。3、接着...

Matlab如何找到一个数组中的最大值以及它所在的位置?
在Matlab随机生成一维数组或者手动输入 利用Max函数,将一维数据放入Max(一维数组)中 最终利用Max函数输出最大值和位置

matlab 中怎么把找出几个数的最大值
取向量A中前N个最大值及其位置,最大值存储在maxV,位置存储在maxP sortA=sort(A,'descend' );%由大到小排列 maxV=sortA(1:N);maxP=find(A>=sortA(N));maxP=maxP(1:N);%截断

Matlab如何找到一个数组中的最大值以及它所在的位置
用max()函数即可,比如 >> r = rand(1,10);>> [maxr,index]=max(r)maxr = 0.9649 index = 10 第一个返回参数是最大值,第二个参数是最大值所在的位置(下标)

如何用MATLAB段函数的最小值和最大值
option可省.X1,X2为给定的范围,FUN为句柄或内联函数 例如:y=2*x^3-3*x^2 -1=<x<=4 的最大与最小值 程序 clc;clear;fun=@(x)2*x^3-3*x^2-1;fun2=inline('-(2*x^3-3*x^2-1)','x');ezplot(fun,[-1 4]); %先画图判断大概情况 [xmin,fmin,exitflag,output]=fmin...

利用matlab函数怎么求一个函数的最大值
找最大元素就是max(max(A)),注意二维矩阵要写两个max 找对应位置用find函数 举个例子: >> A=[1 2 3 ;4 5 6] A = 1 2 3 4 5 6 >> max(max(A)) ans = 6 >> [x y]=find(A==max(max(A))) x = 2 y = 3 >> 找到最大元素是...

如何在matlab下提取矩阵中若干个最大值的点
8,9,10,5,4][x,y]=sort(a(:))a(y(1:end-5))=0 a = 0 7 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 8 9 10 0 0 因为你的矩阵中有两个7,程序自动去了第一个7,所以和你的结果有点不一样!

matlab数组中求最大的几个数并返回其位置
可以利用sort函数给数列a从小到大排列,找前几个最大的。如下:[b,i]=sort(a)。b为从小到大的数字,i为对应位置。要找前3个,如下输入:>> a=[3,15,6,21,18,2,18,19,1,4,7,29, 21 ,23 ,29 ,23, 14, 6, 9 ,29 ,31];>> [b,i]=sort(a)b = Columns 1 through 12 1 ...

如何用matlab求函数最小值最大值啊?各位大侠,帮忙编一下这个函数的代码...
f1=686.4.\/t.^2.*(exp(0.3*t)-1)+1.31.\/t.*(exp(0.3*t)-0.3*t-1)+137.4.\/t.*(exp(0.3*t)-1);df1=diff(f1,t)tt=solve(df1,'t')ezplot(f1)minf=feval(@(t)eval(f1),tt)hold on;plot(tt,minf,'ro')===结果 df1 = (131*((3*exp((3*t)\/10))\/10 - ...

相似回答