matlab中常见函数功用.docx
- 文档编号:28418655
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:12
- 大小:20.93KB
matlab中常见函数功用.docx
《matlab中常见函数功用.docx》由会员分享,可在线阅读,更多相关《matlab中常见函数功用.docx(12页珍藏版)》请在冰豆网上搜索。
matlab中常见函数功用
⊙在matlab中clear,clc,clf,hold作用介绍
clear是清变量,
clc只清屏,
clf清除图形窗口上的旧图形,
holdon是为了显示多幅图像时,防止新的窗口替代旧的窗口。
①format:
设置输出格式
对浮点性变量,缺省为formatshort.
format并不影响matlab如何计算和存储变量的值。
对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进行,而不论变量是如何显示的。
对整型变量采用整型数据。
整型变量总是根据不同的类(class)以合适的数据位显示,例如,3位数字显示显示int8范围-128:
127。
formatshort,long不影响整型变量的显示。
formatlong显示15位双精度,7为单精度(scaledfixedpoint)
formatshort显示5位(scaledfixedpointformatwith5digits)
formatshorteng至少5位加3位指数
formatlongeng16位加至少3位指数
formathex十六进制
formatbank2个十进制位
format+正、负或零
formatrat有理数近似
formatshort缺省显示
formatlongg对双精度,显示15位定点或浮点格式,对单精度,显示7位定点或浮点格式。
formatshortg5位定点或浮点格式
formatshorte5位浮点格式
formatlonge双精度为15位浮点格式,单精度为7为浮点格式
②plot函数
基本形式
>>y=[00.580.700.950.830.25];
>>plot(y)
生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。
>>x=linspace(0,2*pi,30);%生成一组线性等距的数值
>>y=sin(x);
>>plot(x,y)
生成的图形是上30个点连成的光滑的正弦曲线。
多重线
在同一个画面上可以画许多条曲线,只需多给出几个数组,例如
>>x=0:
pi/15:
2*pi;
>>y=sin(x);
>>w=cos(x);
>>plot(x,y,x,w)
则可以画出多重线。
另一种画法是利用hold命令。
在已经画好的图形上,若设置holdon,MATLAB将把新的plot命令产生的图形画在原来的图形上。
而命令holdoff将结束这个过程。
例如:
>>x=linspace(0,2*pi,30);y=sin(x);plot(x,y)
>>holdon
>>z=cos(x);plot(x,z)
>>holdoff
线型和颜色
MATLAB对曲线的线型和颜色有许多选择,标注的方法是在每一对数组后加一个字符串参数,说明如下:
线型线方式:
-实线:
点线-.虚点线--波折线。
线型点方式:
.圆点+加号*星号xx形o小圆
颜色:
y黄;r红;g绿;b蓝;w白;k黑;m紫;c青.
以下面的例子说明用法:
plot(x,y,线形,颜色,线条宽度),
>>x=0:
pi/15:
2*pi;
>>y1=sin(x);y2=cos(x);
>>plot(x,y1,’b:
+’,x,y2,’g-.*’)
网格和标记
在一个图形上可以加网格、标题、x轴标记、y轴标记,用下列命令完成这些工作。
>>x=linspace(0,2*pi,30);y=sin(x);z=cos(x);
>>plot(x,y,x,z)
>>grid
>>xlabel(‘IndependentVariableX’)
>>ylabel(‘DependentVariablesYandZ’)
>>title(‘SineandCosineCurves’)
也可以在图形的任何位置加上一个字符串,如用:
>>text(2.5,0.7,’sinx’)
表示在坐标x=2.5,y=0.7处加上字符串sinx。
更方便的是用鼠标来确定字符串的位置,方法是输入命令:
>>gtext(‘sinx’)
在图形窗口十字线的交点是字符串的位置,用鼠标点一下就可以将字符串放在那里。
坐标系的控制
在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,如果你对这个比例不满意,可以用axis命令控制,常用的有:
axis([xminxmaxyminymax])[]中分别给出x轴和y轴的最大值、最小值
axisequal或axis(‘equal’)x轴和y轴的单位长度相同
axissquare或axis(‘square’)图框呈方形
axisoff或axis(‘off’)清除坐标刻度
还有axisautoaxisimageaxisxyaxisijaxisnormalaxisonaxis(axis)用法可参考在线帮助系统。
多幅图形可以在同一个画面上建立几个坐标系,用subplot(m,n,p)命令;把一个画面分成m×n个图形区域,p代表当前的区域号,在每个区域中分别画一个图,如
>>x=linspace(0,2*pi,30);y=sin(x);z=cos(x);
>>u=2*sin(x).*cos(x);v=sin(x)./cos(x);
>>subplot(2,2,1),plot(x,y),axis([02*pi–11]),title(‘sin(x)’)
>>subplot(2,2,2),plot(x,z),axis([02*pi–11]),title(‘cos(x)’)
>>subplot(2,2,3),plot(x,u),axis([02*pi–11]),title(‘2sin(x)cos(x)’)
>>subplot(2,2,4),plot(x,v),axis([02*pi–2020]),title(‘sin(x)/cos(x)’)
图形的输出
在数学建模中,往往需要将产生的图形输出到Word文档中。
通常可采用下述方法:
首先,在MATLAB图形窗口中选择【File】菜单中的【Export】选项,将打开形输出对话框,在该对话框中可以把图形以emf、bmp、jpg、pgm等格式保存。
然后,再打开相应的文档,并在该文档中选择【插入】菜单中的【图片】选项插入相应的图片即可。
③zeros和ones这两个函数是怎么用的
ones产生全1数组,zeros产生全零数组。
ones(a,b)产生a行b列全1数组
ones(a)产生a行a列全1叔祖
例如:
ones(1,3)产生1行3列全1数组[111]
ones
(2)产生 11
11
zeros用法同ones,只是产生的是全0数组
④MATLAB中的length函数
在MATLAB中:
size:
获取数组的行数和列数
length:
数组长度(即行数或列数中的较大值)
numel:
元素总数。
s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时数组的行数,第二个元素是数组的列数。
[r,c]=size(A),当有两个输出参数时,size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量。
如果在size函数的输入参数中再添加一项,并用1或2为该项赋值,则size将返回数组的行数或列数。
其中r=size(A,1)该语句返回的时数组A的行数,c=size(A,2)该语句返回的时数组A的列数。
n=numel(A)该语句返回数组中元素的总数。
n=length(A):
如果A为非空数组,返回行数和列数两者之间数值较大的那一个值,即相当于执行了max(size(A));如果A为空数组,则返回0;如果A是一个向量则返回A的长度。
n=max(size(A):
若A为非空数组,返回A的最大维数;若A为空数组,返回A中最长的非0维数。
⑤【matlab】spline和ppval的意义
x=[0.10.050.020.010.0050.001];
y=[10094.6872.1041.8227.1311.69];
x1=log10(x);
y1=y;
figure,plot(x1,y1,'o')
xx=-3.0:
0.04:
-1;
pp=spline(x1,y1);
y2=ppval(pp,xx)
figure,plot(xx,y2,'o')
xx=-3.0:
0.04:
-1;%表示xx从-3.0开始每隔0.04取值到-1为止(即xx=[-3.0,-2.96,-2.92……,-0.96,-1])
pp=spline(x1,y1);%表示样条插值
y2=ppval(pp,xx)%插值曲线上,xx所对应的yy
可以把最后两句写成yy=spline(x1,y1,xx);
最后画出曲线plot(xx,yy,'-')就是等效于plot(xx,y2,'-')
⑥用法:
linspace(x1,x2,N)
linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量。
其中x1、x2、N分别为起始值、终止值、元素个数。
若缺省N,默认点数为100。
相关函数:
logspace用法:
x=logspace(a,b,n)
功能:
logspace(a,b,n)生成一个(1xn)数组,数据的第一个元素值为10^a,最后一个元素为10^b,n是总采样点数。
需要注意的是,此时产生的数组元素在10^a到10^b上并不是均匀分布的,而形成一个对数曲线。
matlabinterp1里面的spline做三次样条插值
三次样条插值直接用spline函数做。
边界条件加在y的首尾,第一个表示y'(x0),最后一个表示y'(xt)。
如果不加边界条件,默认是not-a-knot边界条件(注意不是自然边界条件)
自然边界条件的插值要用csape函数才能得到。
如果用interp1,则只能使用spline函数的默认边界条件,即not-a-knot条件。
x=0:
3:
9;
y=x.*cos(x);%.*向量乘
xx=linspace(0,9);
plot(x,y,'o');%样本点
holdon;
plot(xx,interp1(x,y,xx,'spline'),'r');%interp1只能使用默认边界条件
plot(xx,spline(x,[0y0],xx),'r:
');%spline可以使用第一类边界条件,这里y'(0)=y'(9)=0
pp=csape(x,y,'second');
plot(xx,fnval(pp,xx))%第二类边界条件要用csape做,这里自然边界条件
legend%('样本点','默认边界条件','一阶导为0','自然边界条件','location','south')
8
randi是matlab中能产生均匀分布的伪随机整数的新函数。
用法有:
randi(imax)
r=randi(imax,n)
randi(imax,m,n)
randi(imax,[m,n])
randi(imax,m,n,p,...)
randi(imax,[m,n,p,...])
randi(imax,size(A))
r=randi([imin,imax],...)
r=randi(...,classname)
例如:
randi([01],1,10)
生成1*10的0、1随机的矩阵:
ans=
1110010100
9
rand函数(用于产生随机数)
均匀分布的随机数或矩阵
语法
Y=rand(n)
Y=rand(m,n)
Y=rand([mn])
Y=rand(m,n,p,...)
Y=rand([mnp...])
Y=rand(size(A))
rand
s=rand('state')
描述
rand函数产生由在(0,1)之间均匀分布的随机数组成的数组。
Y=rand(n)返回一个nxn的随机矩阵。
如果n不是数量,则返回错误信息。
Y=rand(m,n)或Y=rand([mn])返回一个mxn的随机矩阵。
Y=rand(m,n,p,...)或Y=rand([mnp...])产生随机数组。
Y=rand(size(A))返回一个和A有相同尺寸的随机矩阵。
1,rand(3)*-2rand(3)是一个3*3的随机矩阵(数值范围在0~1之间)
然后就是每个数乘上-2
2,用matlab随机产生60个1到365之间的正数1+fix(365*rand(1,60));
3,用rand函数随机取100个从-1到1的数x1,x2,...,x=rand(1,100)*2-1
10、函数unidrnd简介
函数功能:
产生一组离散均匀随机数。
语法格式:
R=unidrnd(N)
产生从1到N所指定的最大数数之间的离散均匀随机数。
其中N可以是一个向量、矩阵、多维数组(当然也可以是一个数,即1乘以1的矩阵),但N中所有元素都必须是正整数。
这种调用方式将产生一个和N具有相同尺寸(行、列、维数)的矩阵R。
R=unidrnd(N,v)
这种调用格式中v是一个行向量,如果v是一个1乘以2的向量,则v中的两个元素分别指定了生成的矩阵R的行数(由v
(1)指定)和列数(由v
(2)指定)。
如果v是一个1乘以n的矩阵,则R是一个n维数组。
R=unidrnd(N,m,n)
这里m和n分别指定生成的矩阵R的行数和列数。
程序示例
>>a=unidrnd
(1)
a=1
>>a=unidrnd
(2)
a=1
>>a=unidrnd
(2)
a=2
>>a=unidrnd(0)
a=NaN
>>a=unidrnd([123;450])
a=
122
23NaN
>>a=unidrnd(100,2,3)
a=
119919
65111
11、ceil的作用是向正方向舍入;ceil是向离它最近的大整数圆整
如a=[-1.9,-0.2,3.4,5.6,7,2.4+3.6i]
圆整后:
a=[-1,0,4,6,7 ,3+4i]
还有三个函数fixfloorround
其作用分别是向零舍入、朝负方向舍入、round是四舍五入函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 常见 函数 功用
![提示](https://static.bdocx.com/images/bang_tan.gif)