matlab编写一个函数文件MyOut=MinFunction(A,MyFlag),当MyFlag=1时,找出A的最小元素;

matlab编写一个函数文件MyOut=MinFunction(A,MyFlag),当MyFlag=1时,找出A的最小元素;,第1张

第一个:

function MyOut=MinFunction(A,MyFlag)

if MyFlag == 1

MyOut = min(A(:));

elseif MyFlag==2

MyOut = sum(A(:)==0);

else

end

第二个:

MyFlag = 1;

MinFunction([0 1 2 3],MyFlag)

MinFunction([0; 1; 2; 3],MyFlag)

MinFunction([0 1; 2 3],MyFlag)

MyFlag = 2;

MinFunction([0 1 2 3],MyFlag)

MinFunction([0; 1; 2; 3],MyFlag)

MinFunction([0 1; 2 3],MyFlag)

unique()函数:去掉矩阵中重复的元素

(1)B = unique(A)

获取矩阵A 的不同元素构成的向量,其中B可能是行向量也可能是列向量,升序排列

(2)B = unique(A,'rows')

获取矩阵A的不同行向量构成的矩阵。

(3) [ C,IA,IC ] = unique(A)\unique(A,'rows')

IA为矩阵C中的元素在矩阵A中的位置,IC为矩阵A中的元素在矩阵C中的位置。

size(A)函数是用来求矩阵的大小的

比如说一个A是一个3×4的二维矩阵:

1、size(A) %直接显示出A大小

输出:ans=

3 4

2、s=size(A)%返回一个行向量s,s的第一个元素是矩阵的行数,第二个元素是矩阵的列数

输出:s=

3 4

3、[r,c]=size(A)%将矩阵A的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c

输出:r=

3

c=

4

4、[r,c,m]=size(A)

输出:r=

3

c=

4

m=

1

也就说它把二维矩阵当作第三维为1的三维矩阵,这也如同我们把n维列向量当作n×1的矩阵一样

5、当a是一个n维行向量时,size(A)把其当成一个1×n的矩阵,因此size(a)的结果是

ans

1 n

而不是a的元素个数n

6、size(A,n)

如果在size函数的输入参数中再添加一项n,并用1或2为n赋值,则 size将返回矩阵的行数或列数。其中r=size(A,1)该语句返回的是矩阵A的行数, c=size(A,2) 该语句返回的是矩阵A的列数

hist的用法

1n=hist(Y);

默认十个等间隔区间,并返回每个范围内的Y的元素个数作为一行向量

2n=hist(Y,X);

X是一个事先给定的区间划分,统计Y在X这个区间划分下的个数

3n=hist(Y,nbins);

nbins是间隔数,也就是说我们应该统计多少个间隔

4[n,xout]=hist();

返回的参数多了很多,n是每一个区间的个数,xout是区间的中心位置

zeros函数和ones函数

zeros函数——生成零矩阵

ones函数——生成全1阵

fminbnd函数

有约束优化问题,使用fmincon——万能函数

[x,favl,exitflag]=fmincon(fun1,x0,A,B,Aeq,Beq,l,u,fun2)

fun1:目标函数

x0:初始点

Ax<=B(不等式约束)

Aeqx=Beq(等式约束)

l<=x<=u(上下界约束)

fun2:用于非线性约束

fun2的格式为:C(x)<=0;Ceq(x)=0

function [C,Ceq]=fun2(x)

C = ;

Ceq = ;

end

std函数是用来计算标准偏差的一个函数,由于其有不同的参数,我们就用下面的例子进行介绍:

A =

1 2 3

1 1 1

标准差的两种计算公式如下:

std(A):

std(A)函数求解的是最常见的标准差,此时除以的是N-1。

注意:此函数命令不能对矩阵求整体的标准差,只能按照行或者列进行逐个求解标准差,默认情况下是按照列。

在MATLAB主窗口中输入std(A) 回车,结果如下:

输出的是每一列的标准差。

std(A,flag):

这里flag代表的是用哪一个标准差函数,如果取0,则代表除以N-1,如果是1代表的是除以N,

我们在MATLAB主窗口中输入std(A,1) 回车,std(A,0) 回车,可以看到如下结果

std(A,flag,dim):

第三个参数代表的是按照列求标准差还是按照行求标准差,std(A,1,1)代表的是按照列求标准差,std(A,1,2)代表的是按照行求标准差。

在MATLAB主窗口中输入如下命令:std(A,1,1) 敲回车 std(A,1,2) 敲回车

function flag = prime(num)

for i = 2:sqrt(num)

if mod(num, i) == 0

flag = 0

return

end

end

flag = 1

end

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

原文地址: http://outofmemory.cn/langs/11672219.html

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

发表评论

登录后才能评论

评论列表(0条)

保存