MATLAB--函数 matlab rand函数

MATLAB之所以运算功能强大,重要原因之一就是它含有丰富的内建函数,例如数学函数中的三角函数、复函数、多项式函数、数据分析函数的求平均值、最大最小值、排序等,以及逻辑/选择函数如if-else等,还有用来模拟随机发生事件的随机函数。虽然MATLAB提供了数百种内建函数,但也不是包罗万象,为了解决这个问题,MATLAB提供了十分方便的自定义函数(自建函数)的强大功能。

l)常见数学函数

MATLAB提供了许多内建函数,如对数函数、三角函数、多项式函数等。使用函数需注意,函数名要放在等式的右边,等式左边是计算这个函数的表达式。此外,函数可以嵌套,被当作另一个函数的自变量调用。一些常用的内建函数的格式和功能如下:

round(x)按四舍五入,对x取整

fix(x)将x值近似至最接近0的整数

floor(x)将x值近似至最接近-¥的整数

ceil(x)将x值近似至最接近¥的整数

sign(x)检验x的符号,x<0返回值为-1, x=0 返回值为0,x>0返回值为1

rem(x,y)求x/y的余数

exp(x)指数函数

log(x)以e为底的对数函数即自然对数

log10(x)以10为底的对数函数

至于三角函数和双曲线函数的使用,和一般数学式相似,其语法也很简洁易懂。例如三角函数有:sin(x)、cos(x)、tan(x)、asin(x)、acos(x)、atan(x)、atan2(y,x)。常用到的双曲线函数有:sinh(x)、cosh(x)、tanh(x)、asinh(x)、acosh(x)、atanh(x)。

常见的复数相关函数有real(求实部)、imag(求虚部)、conj(求共轭)、abs(求复数的值)、angle(求复角)等,MATLAB是以i或j来代表虚部,若复数表示为x=a+bi,其共轭复数,复数大小 ,复数向量的夹角 ,复数实部 ,复数虚部 ,复数指数表示法。则这些函数所对应的MATLAB的命令为:a=real(x),b=imag(x),=conj(x),r =abs(x), =angle(x),x=r*exp(i*angle(x))

用极坐标图描述复数往往比一般的卡氏坐标更合适,polar命令专门绘制极坐标图,其命令格式为polar(theta,r)其中(theta, r)分别表示极坐标上的角度 及半径值r。以下例子说明了它的用法:

>>t=0:0.01:2*pi;%给出角度t的变化范围

>>r=sin(2*t).*cos(2*t);%求出相应的半径r的值

>>polar(t,r)%做出极坐标图

>> title('Polar plot ofsin(2t)cos(2t)');% 加上题头

>> grid%加上网格线

px)代表多项式 。MATLAB以p=[1 4 -7-10]来描述这个多项式,其中的数值是多项式的各阶项(从高到低)的系数,然后只要给出一组X的值,就可以用polyval函数来求此多项式的一组值,为了求上式px)的值,可执行以下命令:

>> x=linspace(-1,3); %给出100个从-1到3等分的x的值

>> p=[1 4 -7-10];% 给出要求的多项式

>> v=polyval(p,x);% v为所求的与100个x值对应的多项式的值

在MATLAB中,多项式的四则运算也很简单,加减直接用运算符相连,做乘除运算须借助conv和deconv两个函数。它们的格式是:乘法用conv(a,b),其中a、b是两个多项式系数的数组。除法用deconv函数,其格式是[q,r]=deconv(a,b),其中q,r分别代表商多项式及余数多项式。下面用几个范例,来说明两个多项式的加减乘除运算:

>> a=[1 2 3 4];b=[1 4 916]; % 给出两个多项式a和b

>>c=a+b;% 求两个多项式的和的多项式

>>d=a-b;% 求两个多项式的差的多项式

>>e=conv(a,b)% 求两个多项式的积的多项式

>>[q,r]=deconv(a,b)% 求两个多项式的商和余数的多项式

令多项式等于零,则它变成一个方程,MATLAB采用数值法可以很方便地求解高阶方程,求解方程的函数是roots,它的格式是roots(p),若存在有复根,会用i或j来表示虚根。注意在输入方程的系数时,所缺项的系数一定要用零来补足,给出例子如下:

>> p=[1-12 0 25116];% 其中二阶项系数为零说明方程中缺二阶项

>>r=roots(p)% r为所求的解,此例既有实数根也有复数根

roots函数的逆函数是 poly,当已知方程的解r,可用此函数求出原方程,例如:

>> r=[-2-1];% 已知某方程的根分别为-1,-2

>>pp=poly(r)% 用poly函数可求得pp= (x+2)(x+1) = x^2

+3x+2

polyder函数用来求多项式的微分,格式为polyde(p)。polyder(a, b)求多项式a,b乘积的微分;[p,q]= polyder(a,b)求多项式a,b商的微分,分母和分子分别保存在p,q中。residue函数完成两多项式相除,结果用部分分式展开来显示,例如:

>>n=10*[1,2];% 被除的多项式是10*s+20

>> d=poly([-l,-3,-4]);% 作为除数的多项式用根的方式表示,说明要分

解成与根相关的分式

>>[r,p,k]=risidue(n,d)%r为分子数组,P为分母常数项,k为余项

r= -6.6667

5.0000

1.6667

P= -4.0000

-3.0000

-1.0000

k=[ ]

事实上就是完成以下的运算:

上面介绍过用roots来求方程的解,但是如果方程式不是多项式的形态就不能用roots函数。而这类的方程多半是非线性方程式,其函数形态变化很大,此时可以用fzero函数来求解,它的基本原理就是找x的值,将此x值代人时,能使该函数值为零。求非线性方程式的根应按照以下步骤:

(1)先定义方程式。注意必须将方程式转换成f(x)=0的形态,例如某方程式为sin(x)=3,则该方程式应表示为f(x)=sin(x)-3。

(2)代人适当范围的x,求出相应的f(x)值,然后将该函数图画出,以便了解该方程式的函数的走向和趋势。

(3)选取图中可能的f(x)与x轴相交的x0,再调用fzero('function',x0),即可求出在x0附近可能存在的根,其中function是先前已定义的方程名。如果从函数分布图看出根不只一个,则需再代人一个x1,将下一个根求出。

2)常用数据分析函数

MATLAB提供了很多数据处理和分析的函数,常见的有:

max(x)找出数组x中的最大值。

max(x,y)找出数组x及y的最大值,产生一个由两个数组中最大的元素组成的新数组。[y,i]=max(x)将数组x中的最大值赋给y,其所在位置赋给i。

min(x)找出数组x中的最小值。

min(x, y)找出数组x及y的最小值,产生一个由两个数组中最小的元素组成的新数组。

[y,i]=min(x)将数组x中的最小值赋给y,其所在位置赋给i 。

mean(x)求出数组x中的平均值。

MATLAB--函数 matlab rand函数

median(x)找出数组x的中位数。

sum(x)计算数组x的总和。

prod(x)计算数组x的连乘积。

cumsum(x)产生新的数组,每一项都是原数组x中前项的累加和。

cumprod(x)产生新的数组,每一项都是原数组x中前项的连乘积。

例如:

>> x=[1 2 3 4 5];

>>sum(x)%将x中的各项求和,结果为15

>>prod(x)%将x中的各项连乘,结果是120

>>cumsum(x)%将x的每一项与它的前项累加后生成新的数组[1 3 6 10 15]

>>cumprod(x)%将x的每一项与它的前项连乘后生成新的数组[1 2 6 24 120]

在分析各种工程问题时,常常需要模拟某种不可预见且不规则的现象,这时可以利用随机数(randomnumber)来产生模拟随机特性的一批数据。随机数按其统计分布特性可分为:均匀(uniform)随机数和正态(normal)随机数。均匀随机数是指其数值平均地分布于某一区间,而正态随机数的数值则是呈现高斯(Gaussian)分布,形状像一个中间高两边低的山丘。

用MATLAB函数rand可产生在[0,1]区间平均分布的随机数,产生均匀随机数的函数是rand(n)和rand(m,n),前者产生n个随机数,后者产生mn个随机数。将这些随机数代人数学模型中,可以模拟某种事件出现的概率。其中要注意seed(种子)这个选项,它用来设定随机数产生的起始值,有相同起始值的随机数,其后产生的随机数每次都相同。选择随机数种子函数的格式为rand('seed',n),n规定≥0。其中n=0有特别的意义,此时它第一次产生的随机数的起始值为931316785;其他的n值就是欲使用的起始值。如果使用相同的起始值,则随机数的序列会一样,因为随机数是依据起始值进行计算的。如果所需的随机值不在[0,1]区间,只需对其进行线性处理即可。

用MATLAB函数randn可产生正态随机数,由于正态随机数并非以上下限来定义,而是用数据的平均值和方差来定义,因此在产生正态随机数时,需设定平均值和方差的大小。randn(n)和randn(m,n)是分别产生含n×n和m×n个正态随机数元素的矩阵的函数,其平均值为0,方差为l。如果需要产生的正态随机数值的平均值和方差并非0和1,可以采用以下步骤进行转换。假设要得到一组正态随机数,它的平均值为b方差为a,首先产生一组随机数r,再将其值乘以方差a,接着再加上平均值b,算式为x=a*r+b,则x就是具有所需方差和平均值的随机数的矩阵。

3)矩阵运算函数

MATLAB的运算以数组(array)及矩阵(matrix)方式来进行,但二者运算性质明显不同,数组强调元素对元素的运算,所以在运算符前要加.,而矩阵则采用线性代数的运算方式。请看下表:

数组运算符号

矩阵运算符号

功能

+

+

-

-

.*

*

./

/

左除

.

右除

.^

^

次方

.’

转置

若已有一矩阵A,则求它的逆矩阵和秩的函数分别为inv(A)和rank(A)。计算矩阵行列式的函数为det(A)。用dig(A)可建立对角矩阵或取矩阵的对角向量;rot90(A)可将矩阵旋转90度。

  

爱华网本文地址 » http://www.413yy.cn/a/25101015/258702.html

更多阅读

MATLAB 各种 对数函数 用法以及实例 matlab 对数函数

MATLAB 各种 对数函数 用法以及实例——简介在MATLAB运算当中,我们常常需要求对数,在编写M文件的过程中,我们也需要表示对数,下面我就通过一些示例介绍一下如何在MATLAB中求对数。MATLAB 各种 对数函数 用法以及实例——工具/原料MATLA

matlab曲线拟合 函数 用法以及例子 如何用matlab拟合曲线

matlab曲线拟合 函数 用法以及例子——简介在运行MATLAB编程进行数据的处理过程当中,我们常常用到matlab曲线拟合,但是工具箱由于需要人工交互,得到的拟合结果,需要人工的去提取,再输入,所以,工具箱拟合结果十分不适合调用,以及继续下面的操

matlab中如何定义函数 matlab输入函数表达式

matlab中如何定义函数——简介许多时候希望将特定的代码(算法)书写成函数的形式,提高代码的可封装性与重复性,简化代码设计,提高执行效率!下面简单介绍一下matlab中的函数定义与使用。matlab中如何定义函数——工具/原料matlab 7.0及以上

matlab函数_连通区域转载 matlab 连通区域分析

matlab函数_连通区域1、 matlab函数bwareaopen──删除小面积对象格式:BW2 = bwareaopen(BW,P,conn)作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。算法:(1)Determine the connected components. L = bwlabeln(BW, conn)

matlab中的最大值和最小值_待_雪 函数最大值和最小值

matlab中的的最大值和最小值MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min,两个函数的调用格式和操作过程类似。1.求向量的最大值和最小值求一个向量X的最大值的函数有两种调用格式,分别是:(1) y=max(X):返回向量X的最

声明:《MATLAB--函数 matlab rand函数》为网友时光暖心分享!如侵犯到您的合法权益请联系我们删除