MATLAB初学者笔记详细记录_第1页
MATLAB初学者笔记详细记录_第2页
MATLAB初学者笔记详细记录_第3页
MATLAB初学者笔记详细记录_第4页
MATLAB初学者笔记详细记录_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB简介【实验目的】1.了解MATLAB的数值运算;2.了解MATLAB的一些基本函数及命令;3.学习、掌握MATLAB软件有关的命令。【实验准备】1.熟悉MATLABMATLAB的首创是在数值代数领域颇有影响的CleveMoler博士,他在讲授线性代数课程时,深感高级语言编程的诸多不便之处,于是萌生了开发新的软件平台,即为MATLAB(MATrixLABoratory,矩阵实验室),软件采用了当时流行的EISPACK(基于特征值计算的软件包)和LINPACK(线性代数软件包)中的子程序,利用FORTRAN语言编写而成。现今的MATLAB已全部采用C语言改写,并使用户界面变得越来越好。由Moler博士等一批数学家和软件专家组建了MathWorks软件公司,专门从事MATLAB的扩展和改进。自1982年推出第一个版本以来,1992年推出了具有划时代意义的MATLABV4.0,1993年推出了可用于IBMPC及其兼容机上的微机版,特别是与Windows配合使用,使MATLAB的应用得到了前所未有的发展。

1.1MATLAB的主要功能

(1).数值计算和符号计算功能MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。

MATLAB和著名的符号计算语言Maple相结合,使得MATLAB具有符号计算功能。(2).绘图功能

MATLAB提供了两个层次的绘图操作:一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作。(3).编程语言

MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。

(4).MATLAB工具箱

MATLAB包含两部分内容:基本部分和各种可选的工具箱。

MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。1.2初识MATLAB启动MATLAB后,将进入MATLAB6.5集成环境。MATLAB6.5集成环境包括MATLAB主窗口、命令窗口(CommandWindow)、工作空间窗口(Workspace)、命令历史窗口(CommandHistory)、当前目录窗口(CurrentDirectory)和启动平台窗口(LaunchPad)。MATLAB系统的退出

要退出MATLAB系统,也有3种常见方法:(1)在MATLAB主窗口File菜单中选择ExitMATLAB命令。

(2)在MATLAB命令窗口输入Exit或Quit命令。

(3)单击MATLAB主窗口的“关闭”按钮。.主窗口MATLAB主窗口是MATLAB的主要工作界面。主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。在MATLAB6.5主窗口的菜单栏,共包含File、Edit、View、Web、Window和Help6个菜单项。(1)File菜单项:File菜单项实现有关文件的操作。

(2)Edit菜单项:Edit菜单项用于命令窗口的编辑操作。

(3)View菜单项:View菜单项用于设置MATLAB集成环境的显示方式。(4)Web菜单项:Web菜单项用于设置MATLAB的Web操作。

(5)Window菜单项:主窗口菜单栏上的Window菜单,只包含一个子菜单Closeall,用于关闭所有打开的编辑器窗口,包括M-file、Figure、Model和GUI窗口。

(6)Help菜单项:Help菜单项用于提供帮助信息。工具栏

MATLAB6.5主窗口的工具栏共提供了10个命令按钮。这些命令按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方便。命令窗口

命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。

MATLAB命令窗口中的“>>”为命令提示符,表示MATLAB正在处于准备状态。在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。例如

p=15,m=35

p=15;m=35如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。

在MATLAB里,有很多的控制键和方向键可用于命令行的编辑。命令历史记录窗口

在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。如果要清除这些历史记录,可以选择Edit菜单中的ClearCommandHistory命令。2.基本数值运算在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之后,并按入Enter键即可。例如计算(5*2+1.3-0.8)*10/25的值:用键盘在MATLAB指令窗中输入以下内容>>(5*2+1.3-0.8)*10/25(2)在上述表达式输入完成后,按【Enter】键,该就指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果。ans=4.2000MATLAB会将运算结果直接存入一变量ans,代表MATLAB运算后的答案(Answer),并显示其数值于屏幕上。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。我们也可将上述运算式的结果设定给另一个变数x如下:>>x=(5*2+1.3-0.8)*10^2/25x=42此时MATLAB会直接显示x的值。小提示:变量命名的规则1.第一个字母必须是英文字母且区分大小写;2.字母间不可留空格;3.最多只能有63个字母,MATLAB会忽略多余字母。变量也可用来存放向量或矩阵,并进行各种运算,例如:>>x=[1352];%4维向量赋值给变量x>>y=2*x+1%上一行命令后面加“;”表示运行结果不显示y=37115当要查询变量的值时,只需在系统提示符号>>后直接输入该变量名即可,如:>>xx=1352在上例中,MATLAB会忽略所有在百分比符号(%)之后的文字,因此百分比之后的文字均可视为注释,不会影响系统的运算结果。定义符号变量,用sym或syms,例如:>>symsab%定义两个符号变量a,b,两个变量之间用空格隔开>>a^bans=a^b定义字符串变量,例如:>>s='你好!'%定义字符串变量,输出(’’)中内容s=你好!以符号的形式输出表达式,用命令sym(),例如:>>x=sym([1352])%向量以符号的形式输出x=[1,3,5,2]在书写语句时,可以用逗号(,)或分号(;)隔开,区别仅在于屏幕显示的不同:用逗号隔开,屏幕会显示运算的结果,使用分号则不会。例如:>>x1=2,y1=3%使用逗号,屏幕显示运算结果x1=2y1=3>>x2=2;y2=3;%使用逗号,屏幕不会显示运算结果,(;)也表示语句结束MATLAB可在同时执行数个命令,只要以逗号或分号将命令隔开。例如:>>x=sin(pi/3);y=x^2;z=y*10,%在同一行输入多个命令z=7.5000若一个数学运算是太长,可用三个句点将其延伸到下一行,如:>>z=10*sin(pi/3)*...%换行sin(pi/3)z=7.50003.基本数学函数MATLAB常用的基本数学函数格式:函数(变量)。例如:>>x=-2;>>abs(x)%x的绝对值ans=2几点注意:1.函数一定在等式的右边;2.每个函数对其变量的个数和格式都有一定的要求;例如:sin(x)与sind(x)对变量要求不同;3.函数允许嵌套。例如:sqrt(abs(sin(225*pi/180))),即。4.几个常用命令clearx:清除变量xclearall:清除所有变量help:用来查询已知命令的用法。例如matlab代码:>>helpsin%显示关于sin函数的帮助运算结果为:SINSine.SIN(X)isthesineoftheelementsofX.Seealsoasin,sind.Overloadedfunctionsormethods(oneswiththesamenameinotherdirectories)helpsym/sin.mReferencepageinHelpbrowserdocsinlookfor:用来寻找未知的命令。例如要寻找计算逆矩阵的命令,可键入lookforinverse,MATLAB会列出所有和关键字inverse相关的指令。找到所需的命令后,即可用help进一步找出其用法。whos:查看当前工作区内变量信息open*.m:打开m文件exit或quit:退出MATLABformat:输出结果位为小数formatlong:输出结果为15位小数formatrat:输出结果为有理数注:format命令仅仅影响数据在屏幕上的显示格式,不会影响系统内部的存储和运算精度。

表1-1基本算术运算符及特殊运算符符号符号用途说明+加-减.*数组乘法

详细说明helparith*矩阵相乘^矩阵求幂.^点幂\左除详细说明helpslash/右除.\点左除./点右除,作分隔用,如把矩阵元素、向量参数、函数参数、几个表达式分隔开来;(a)写在一个表达式后面时,运算后命令窗口中不显示表达式的计算结果(b)在创建矩阵的语句中指示一行元素的结束,例如m=[xyz;ijk]:(a)创建向量的表达式分隔符,如x=a:b:c(b)a(:,j)表示j列的所有行元素;a(i,:)表示i行的所有列元素;a(1:3,4)表示第四列的第1行至第3行元素()圆括号[]创建数组、向量、矩阵或字符串(字母型){}创建单元矩阵(cellarray)或结构(struct)%注释符,特别当编写自定义函数文件时,紧跟function后的注释语句,在你使用help函数名时会显示出来。'(a)定义字符串用(b)向量或矩阵的共轭转置符.'一般转置符...表示MATLAB表达式继续到下一行,增强代码可读性=赋值符号

表1-2一些特殊的变量与常量(预定义变量)变量名意义变量名意义ans缺省变量名,以应答最近一次操作运算结果i或j虚数单位i=j=pi圆周率inf表示无穷大realmax最大正实数realmin最小正实数

表1-3常用的数学函数函数意义函数意义sin(x)正弦asin(x)反正弦tan(x)正切atan(x)反正切sec(x)正割csc(x)余割exp(x)指数运算log(x)自然对数log2(x)以2为底的对数pow2(x)以2为底的指数abs(x)标量的绝对值或向量的长度sqrt(x)开平方imag(x)求复数的虚部real(x)求复数的实部conj(x)共轭复数gcd(x,y)求整数x,y的最大公约数sign(x)符号函数power(x,r)乘方运算expand(x)多项式展开solve(x)求解方程angle(x)以弧度为单位给出复数x的幅角

表1-4几种常用命令命令用途说明sym定义符号变量syms定义多个符号变量clear删除当前工作区内变量whos查看当前工作区内变量信息help查询已知命令的用法lookfor寻找未知的命令open打开文件exit退出MATLABquit退出MATLABformat输出结果位为小数formatrat输出结果为有理数

【实验内容】例1-1:计算.相应的matlab代码及运算结果如下::>>format%结果一小数形式输出>>sin((8+5*log2(4))/(abs(3-7))^3)%输入表达式ans=0.2776例1-2:计算,以符号的形式输出.相应的matlab代码及运算结果如下:>>a=2*sym(sqrt(8))a=4*2^(1/2)或者:>>2*sym(power(8,1/2))%power(8,1/2)进行开方元算ans=4*2^(1/2)【例】用MATLAB计算能得到–2吗?(1)a=-8;r=a^(1/3)r=1.0000+1.7321i(2)>>sym(power(-8,1/3))ans=(1)+(sqrt(3))*i

(3)构造p(r)=p=[1,0,0,8]; R=roots(p); R=-2.00001.0000+1.7321i

例1-3:已知计算.相应的matlab代码及运算结果如下:>>clear>>a=3+4*i;b=2-i;c=2*exp(i*pi/6);>>x=a*b/cx=5.5801-0.3349i>>y=abs(a)>>z=angle(a)>>g=angle(a)*180/pi例1-4:输出字符串“matlab7.0”相应的matlab代码及运算结果如下:>>s='matlab7.0's=matlab7.0

例1-5:输出多项式,并查看变量.相应的matlab代码及运算结果如下:>>clear%清除变量>>symsx;%定义符号变量x>>y=x^2+5*x+4y=x^2+5*x+4例1-6:已知多项式,计算,.相应的matlab代码及运算结果如下:>>clear>>f1=sym('x^2+4'),f2=sym('2*x^3-3*x^2+2*x+3')%输出符号表达式f1=x^2+4f2=2*x^3-3*x^2+2*x+3>>f=f1+f2%实现符号对象的加法运算f=-2*x^2+7+2*x^3+2*x>>g=f1*f2%实现符号对象的乘法运算g=(x^2+4)*(2*x^3-3*x^2+2*x+3)>>expand(g)%多项式展开ans=2*x^5-3*x^4+10*x^3-9*x^2+8*x+12例1-7:求解下列方程组:.相应的matlab代码及运算结果如下:>>clear>>[x,y]=solve('x^2+2*x*y+y^2-4','x-y-3')%求解方程x=5/21/2y=-1/2-5/2所以方程组有两组解分别为:.说明:求解方程租的格式[x1,x2,…,xN]=solve(‘eqn1’,’eqn2’,…,’eqnN’),其中eqni为方程.MATLAB的常用函数一、MATLAB常用的基本数学函数abs(x):纯量的绝对值或向量的长度angle(z):复数z的相角(Phaseangle)sqrt(x):开平方real(z):复数z的实部imag(z):复数z的虚部

conj(z):复数z的共轭复数

round(x):四舍五入至最近整数

fix(x):无论正负,舍去小数至最近整数

floor(x):地板函数,即舍去正小数至最近整数

ceil(x):天花板函数,即加入正小数至最近整数

rat(x):将实数x化为分数表示

rats(x):将实数x化为多项分数展开

sign(x):符号函数(Signumfunction)。

当x<0时,sign(x)=-1;

当x=0时,sign(x)=0;

当x>0时,sign(x)=1。

rem(x,y):求x除以y的馀数

gcd(x,y):整数x和y的最大公因数

lcm(x,y):整数x和y的最小公倍数

exp(x):自然指数

pow2(x):2的指数

log(x):以e为底的对数,即自然对数或

log2(x):以2为底的对数

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

二、MATLAB常用的三角函数

sin(x):正弦函数

cos(x):馀弦函数

tan(x):正切函数

asin(x):反正弦函数

acos(x):反馀弦函数

atan(x):反正切函数

atan2(x,y):四象限的反正切函数

sinh(x):超越正弦函数

cosh(x):超越馀弦函数

tanh(x):超越正切函数

asinh(x):反超越正弦函数

acosh(x):反超越馀弦函数

atanh(x):反超越正切函数

三、适用於向量的常用函数有:

min(x):向量x的元素的最小值

max(x):向量x的元素的最大值

mean(x):向量x的元素的平均值

median(x):向量x的元素的中位数

std(x):向量x的元素的标准差

diff(x):向量x的相邻元素的差

sort(x):对向量x的元素进行排序(Sorting)

length(x):向量x的元素个数

norm(x):向量x的欧氏(Euclidean)长度

sum(x):向量x的元素总和

prod(x):向量x的元素总乘积

cumsum(x):向量x的累计元素总和

cumprod(x):向量x的累计元素总乘积

dot(x,y):向量x和y的内积

cross(x,y):向量x和y的外积

四、MATLAB的永久常数

i或j:基本虚数单位(即)

eps:系统的浮点(Floating-point)精确度

inf:无限大,例如1/0

nan或NaN:非数值(Notanumber),例如0/0

pi:圆周率p(=3.1415926...)

realmax:系统所能表示的最大数值

realmin:系统所能表示的最小数值

nargin:函数的输入引数个数

nargin:函数的输出引数个数

五、MATLAB基本绘图函数

plot:x轴和y轴均为线性刻度(Linearscale)

loglog:x轴和y轴均为对数刻度(Logarithmicscale)

semilogx:x轴为对数刻度,y轴为线性刻度

semilogy:x轴为线性刻度,y轴为对数刻度

六、plot绘图函数的叁数

字元颜色字元图线型态

y黄色.点

k黑色o圆

w白色xx

b蓝色++

g绿色**

r红色-实线

c亮青色:点线

m锰紫色-.点虚线

--虚线

七、注解

xlabel('InputValue');%x轴注解

ylabel('FunctionValue');%y轴注解

title('TwoTrigonometricFunctions');%图形标题

legend('y=sin(x)','y=cos(x)');%图形注解

gridon;%显示格线

八、二维绘图函数

bar长条图

errorbar图形加上误差范围

fplot较精确的函数图形

polar极座标图

hist累计图

rose极座标累计图

stairs阶梯图

stem针状图

fill实心图

feather羽毛图

compass罗盘图

quiver向量场图

附录Ⅰ工具箱函数汇总

Ⅰ.1统计工具箱函数

表Ⅰ-1概率密度函数

函数名对应分布的概率密度函数betapdf贝塔分布的概率密度函数binopdf二项分布的概率密度函数chi2pdf卡方分布的概率密度函数exppdf指数分布的概率密度函数fpdff分布的概率密度函数gampdf伽玛分布的概率密度函数

geopdf几何分布的概率密度函数

hygepdf超几何分布的概率密度函数

normpdf正态(高斯)分布的概率密度函数

lognpdf对数正态分布的概率密度函

nbinpdf负二项分布的概率密度函

ncfpdf非中心f分布的概率密度函数

nctpdf非中心t分布的概率密度函数

ncx2pdf非中心卡方分布的概率密度函数

poisspdf泊松分布的概率密度函数

raylpdf雷利分布的概率密度函数

tpdf学生氏t分布的概率密度函数

unidpdf离散均匀分布的概率密度函数

unifpdf连续均匀分布的概率密度函数

weibpdf威布尔分布的概率密度函数

表Ⅰ-2累加分布函数

函数名对应分布的累加函数

betacdf贝塔分布的累加函数

binocdf二项分布的累加函数

chi2cdf卡方分布的累加函数

expcdf指数分布的累加函数

fcdff分布的累加函数

gamcdf伽玛分布的累加函数

geocdf几何分布的累加函数

hygecdf超几何分布的累加函数

logncdf对数正态分布的累加函数

nbincdf负二项分布的累加函数

ncfcdf非中心f分布的累加函数

nctcdf非中心t分布的累加函数

ncx2cdf非中心卡方分布的累加函数

normcdf正态(高斯)分布的累加函数

poisscdf泊松分布的累加函数

raylcdf雷利分布的累加函数

tcdf学生氏t分布的累加函数

unidcdf离散均匀分布的累加函数

unifcdf连续均匀分布的累加函数

weibcdf威布尔分布的累加函数

表Ⅰ-3累加分布函数的逆函数

函数名matlab函数汇总表Ⅰ-11线性模型函数

函数描

anova1单因子方差分析

anova2双因子方差分析

anovan多因子方差分析

aoctool协方差分析交互工具

dummyvar拟变量编码

friedmanFriedman检验

glmfit一般线性模型拟合

kruskalwallisKruskalwallis检验

leverage中心化杠杆值

lscov已知协方差矩阵的最小二乘估计

manova1单因素多元方差分析

manovacluster多元聚类并用冰柱图表示

multcompare多元比较

多项式评价及误差区间估计

polyfit最小二乘多项式拟合

polyval多项式函数的预测值

polyconf残差个案次序图

regress多元线性回归

regstats回归统计量诊断

续表

函数描述

Ridge岭回归

rstool多维响应面可视化

robustfit稳健回归模型拟合

stepwise逐步回归

x2fx用于设计矩阵的因子设置矩阵

表Ⅰ-12非线性回归函数

函数描述

nlinfit非线性最小二乘数据拟合(牛顿法)

nlintool非线性模型拟合的交互式图形工具

nlparci参数的置信区间

nlpredci预测值的置信区间

nnls非负最小二乘

表Ⅰ-13试验设计函数

函数描

cordexchD-优化设计(列交换算法)

daugment递增D-优化设计

dcovary固定协方差的D-优化设计

ff2n二水平完全析因设计

fracfact二水平部分析因设计

fullfact混合水平的完全析因设计

hadamardHadamard矩阵(正交数组)

rowexchD-优化设计(行交换算法)

表Ⅰ-14主成分分析函数

函数描

barttestBarttest检验

pcacov源于协方差矩阵的主成分

pcares源于主成分的方差

princomp根据原始数据进行主成分分析

表Ⅰ-15多元统计函数

函数描

classify聚类分析

mahal马氏距离

manova1单因素多元方差分析

manovacluster多元聚类分析

表Ⅰ-16假设检验函数

函数描

ranksum秩和检验

signrank符号秩检验

signtest符号检验

ttest单样本t检验

ttest2双样本t检验

ztestz检验

matlab函数汇总32007-10-1710:27表Ⅰ-17分布检验函数

函数描

jbtest正态性的Jarque-Bera检验

kstest单样本Kolmogorov-Smirnov检验

kstest2双样本Kolmogorov-Smirnov检验

lillietest正态性的Lilliefors检验

表Ⅰ-18非参数函数

函数描

friedmanFriedman检验

kruskalwallisKruskalwallis检验

ranksum秩和检验

signrank符号秩检验

signtest符号检验

表Ⅰ-19文件输入输出函数

函数描

caseread读取个案名

casewrite写个案名到文件

tblread以表格形式读数据

tblwrite以表格形式写数据到文件

tdfread从表格间隔形式的文件中读取文本或数值数据

表Ⅰ-20演示函数

函数描

aoctool协方差分析的交互式图形工具

disttool探察概率分布函数的GUI工具

glmdemo一般线性模型演示

randtool随机数生成工具

polytool多项式拟合工具

rsmdemo响应拟合工具

robustdemo稳健回归拟合工具

你可以通过这个链接引用该篇文章:/tb.b?diaryId=15962478

附录1常用命令

附录1.1管理用命令函数名功能描述函数名功能描述

addpath增加一条搜索路径rmpath删除一条搜索路径

demo运行Matlab演示程序type列出.M文件

doc装入超文本文档version显示Matlab的版本号

help启动联机帮助what列出当前目录下的有关文件

lasterr显示最后一条信息whatsnew显示Matlab的新特性

lookfor搜索关键词的帮助which造出函数与文件所在的目录

path设置或查询Matlab路径

附录1.2管理变量与工作空间用命令函数名功能描述函数名功能描述

clear删除内存中的变量与函数pack整理工作空间内存

disp显示矩阵与文本save将工作空间中的变量存盘

length查询向量的维数size查询矩阵的维数

load从文件中装入数据who,whos列出工作空间中的变量名

附录1.3文件与操作系统处理命令函数名功能描述函数名功能描述

cd改变当前工作目录edit编辑.M文件

delete删除文件matlabroot获得Matlab的安装根目录

diary将Matlab运行命令存盘tempdir获得系统的缓存目录

dir列出当前目录的内容tempname获得一个缓存(temp)文件

!执行操作系统命令

附录1.4窗口控制命令函数名功能描述函数名功能描述

echo显示文件中的Matlab中的命令more控制命令窗口的输出页面

format设置输出格式

附录1.5启动与退出命令函数名功能描述函数名功能描述

matlabrc启动主程序quit退出Matlab环境

startup

Matlab自启动程序

附录2运算符号与特殊字符附录

2.1运算符号与特殊字符函数名功能描述函数名功能描述

+加...续行标志

-减,分行符(该行结果不显示)

*矩阵乘;分行符(该行结果显示)

.*向量乘%注释标志

^矩阵乘方!操作系统命令提示符

.^向量乘方矩阵转置

kron矩阵kron积.向量转置

\矩阵左除=赋值运算

/矩阵右除==关系运算之相等

.\向量左除~=关系运算之不等

./向量右除<关系运算之小于

:向量生成或子阵提取<=关系运算之小于等于

()下标运算或参数定义>关系运算之大于

[]矩阵生成>=关系运算之大于等于

{}&逻辑运算之与

.结构字段获取符|逻辑运算之或

.点乘运算,常与其他运算符联合使用(如.\)~逻辑运算之非

xor逻辑运算之异成

附录2.2逻辑函数函数名功能描述函数名功能描述

all测试向量中所用元素是否为真is*(一类函数)

检测向量状态.其中*表示一个确定的函数(isinf)

any测试向量中是否有真元素*isa检测对象是否为某一个类的对象

exist检验变量或文件是否定义logical将数字量转化为逻辑量

find查找非零元素的下标

附录3语言结构与调试

附录3.1编程语言函数名功能描述函数名功能描述

builtin执行Matlab内建的函数global定义全局变量

eval执行Matlab语句构成的字符串nargchk函数输入输出参数个数检验

feval执行字符串指定的文件scriptMatlab语句及文件信息

functionMatlab函数定义关键词

附录3.2控制流程函数名功能描述函数名功能描述

break中断循环执行的语句if条件转移语句

case与switch结合实现多路转移otherwise多路转移中的缺省执行部分

else与if一起使用的转移语句return返回调用函数

elseif与if一起使用的转移语句switch与case结合实现多路转移

end结束控制语句块warning显示警告信息

error显示错误信息while循环语句

for循环语句

附录3.3交互输入函数名功能描述函数名功能描述

input请求输入menu菜单生成

keyboard启动键盘管理pause暂停执行

附录3.4面向对象编程函数名功能描述函数名功能描述

class生成对象isa判断对象是否属于某一类

double转换成双精度型superiorto建立类的层次关系

inferiorto建立类的层次关系unit8转换成8字节的无符号整数

inline建立一个内嵌对象

附录3.5调试函数名功能描述函数名功能描述

dbclear清除调试断点dbstatus列出所有断点情况

dbcont调试继续执行dbstep单步执行

dbdown改变局部工作空间内存dbstop设置调试断点

dbmex启动对Mex文件的调试sbtype列出带命令行标号的.M文件

dbquit退出调试模式dbup改变局部工作空间内容

dbstack列出函数调用关系

附录4基本矩阵与矩阵处理

附录4.1基本矩阵函数名功能描述函数名功能描述

eye产生单位阵rand产生随机分布矩阵

linspace构造线性分布的向量randn产生正态分布矩阵

logspace构造等对数分布的向量zeros产生零矩阵

ones产生元素全部为1的矩阵:产生向量

附录4.2特殊向量与常量函数名功能描述函数名功能描述

ans缺省的计算结果变量non非数值常量常由0/0或Inf/Inf获得

computer运行Matlab的机器类型nargin函数中参数输入个数

eps精度容许误差(无穷小)nargout函数中输出变量个数

flops浮点运算计数pi圆周率

i复数单元realmax最大浮点数值

inf无穷大realmin最小浮点数值

inputname输入参数名varargin函数中输入的可选参数

j复数单元varargout函数中输出的可选参数

附录4.3时间与日期函数名功能描述函数名功能描述

calender日历eomday计算月末

clock时钟etime所用时间函数

cputime所用的CPU时间now当前日期与时间

date日期tic启动秒表计时器

datenum日期(数字串格式)toc读取秒表计时器

datestr日期(字符串格式)weekday星期函数

datevoc日期(年月日分立格式)

附录4.4矩阵处理函数名功能描述函数名功能描述

cat向量连接reshape改变矩阵行列个数

diag建立对角矩阵或获取对角向量rot90将矩阵旋转90度

fliplr按左右方向翻转矩阵元素tril取矩阵的下三角部分

flipud按上下方向翻转矩阵元素triu取矩阵的上三角部分

repmat复制并排列矩阵函数

附录5特殊矩阵函数名功能描述函数名功能描述

compan生成伴随矩阵invhilb生成逆hilbert矩阵

gallery生成一些小的测试矩阵magic生成magic矩阵

hadamard生成hadamard矩阵pascal生成pascal矩阵

hankel生成hankel矩阵toeplitz生成toeplitz矩阵

hilb生成hilbert矩阵wilkinson生成wilkinson特征值测试矩阵

附录6数学函数

附录6.1三角函数函数名功能描述函数名功能描述

sin/asin正弦/反正弦函数sec/asec正割/反正割函数

sinh/asinh双曲正弦/反双曲正弦函数sech/asech双曲正割/反双曲正割函数

cos/acos余弦/反余弦函数csc/acsc余割/反余割函数

cosh/acosh双曲余弦/反双曲余弦函数csch/acsch双曲余割/反双曲余割函数

tan/atan正切/反正切函数cot/acot余切/反余切函数

tanh/atanh双曲正切/反双曲正切函数coth/acoth双曲余切/反双曲余切函数

atan2四个象限内反正切函数

附录6.2指数函数函数名功能描述函数名功能描述

exp指数函数log10常用对数函数

log自然对数函数sqrt平方根函数

附录6.3复数函数函数名功能描述函数名功能描述

abs绝对值函数imag求虚部函数

angle角相位函数real求实部函数

conj共轭复数函数附录6.4数值处理函数名功能描述函数名功能描述

fix沿零方向取整round舍入取整

floor沿-∞方向取整rem求除法的余数

ceil沿+∞方向取整sign符号函数

附录6.5其他特殊数学函数函数名功能描述函数名功能描述

airyairy函数erfcx比例互补误差函数

besselhbessel函数(hankel函数)erfinv逆误差函数

bessili改进的第一类bessel函数expint指数积分函数

besselk改进的第二类bessel函数gammagamma函数

besselj第一类bessel函数gammainc非完全gamma函数

bessely第二类bessel函数gammalngamma对数函数

betabeta函数gcd最大公约数

betainc非完全的beta函数lcm最小公倍数

betalnbeta对数函数log2分割浮点数

elipjJacobi椭圆函数legendrelegendre伴随函数

ellipke完全椭圆积分pow2基2标量浮点数

erf误差函数rat有理逼近

erfc互补误差函数rats有理输出

Matlab中有没有画圆或椭圆的函数?没有,Matlab没有提供直接绘圆的图元函数,需要自己写代码,其实

就两句:

sita=0:pi/20:2*pi;

plot(r*cos(sita),r*sin(sita));%半径为r的圆

plot(a*cos(sita+fi),b*sin(sita+fi));%椭圆

如果是单位圆,可以使用rectangle('Curvature',[11])实验二多项式【实验目的】1.

学习、掌握MATLAB软件有关的命令;2.

掌握多项式的表示;3.

学会进行MATLAB中多项式的运算,包括加、减、乘、除;在某点的值;求根,判断重根;求导;求商、余式;求最大公因式、最小公倍式。

【实验准备】1.向量或数组的表达向量输入格式:变量名=[向量数据]输入向量方法:用键盘上方括号“[]”代替向量括号。向量数据在方括号内按行输入,相邻元素用空格(或逗号)隔开。2.多项式的表达(1)多项式的向量表达i)形如的多项式,可以用向量来表示:例如:就可以表示为P=[10-23-4]。ii)已知多项式的根为,则该多项式为:poly(A)(2)多项式的形式表达i)直接以符号的形式输出多项式,例如:>>f1=sym('x^4-2*x^2+3*x-4')f1=x^4-2*x^2+3*x-4ii)定义符号变量,再输出多项式的表达式,例如:>>symsx>>f1=x^4-2*x^2+3*x-4f1=x^4-2*x^2+3*x-4iii)已知多项式的向量表达形式,则多项式为:poly2str(A,’x’),例如:>>A=[10-23-4];%多项式的向量表达式>>f1=poly2str(A,'x')%多项式的形式表达式f1=x^4-2x^2+3x-43.多项式的运算(1)向量表达的多项式运算在进行加法与减法运算时,参加运算的多项式必须具有相同的阶数,如果阶数不同,则低阶的多项式必须补零。例如:>>a=[102];b=[12350];%两个多项式>>f1=poly2str(a,'x')f1=x^2+2>>f2=poly2str(b,'x')f2=x^4+2x^3+3x^2+5x>>c=[00a]+b%求和c=12452>>poly2str(c,'x')ans=x^4+2x^3+4x^2+5x+2>>d=[00,a]-b%求差d=-1-2-2-52>>poly2str(d,'x')ans=-1x^4-2x^3-2x^2-5x+2多项式乘法:conv(x,y)多项式x与y的乘积。例如:>>e=conv(a,b)%求积e=12596100>>poly2str(e,'x')ans=x^6+2x^5+5x^4+9x^3+6x^2+10x多项式带余除法:[q,r]=deconv(x,y)多项式y被x除,q是商式,r是余式。例如:>>[q,r]=deconv(b,a)%带余除法q=121r=0001-2>>q=poly2str(q,'x')%商式q=x^2+2x+1>>r=poly2str(r,'x')%余式r=x-2多项式的根:roots(x)。例如matlab代码:>>roots(a)%求多项式的根运算结果为:ans=0+1.4142i0-1.4142i多项式的值:polyval(f,x)f(x)的值。例如:>>polyval(a,-3)%计算f1(-3)ans=11多项式函数求导运算:polyder(x)多项式x的导函数。例如:>>g=polyder(a)%求多项式f1的导函数g=20>>poly2str(g,'x')ans=2x(2)符号形式的多项式运算多项式的加法,减法,乘法,除法。例如:>>clear>>symsx>>f1=x^2-1;f2=x^3+x^2-2;%输出多项式f1与f2>>f1+f2%求和ans=2*x^2-3+x^3>>f2-f1%求差ans=x^3-1>>f1*f2%求积ans=(x^2-1)*(x^3+x^2-2)>>f1/f2%求商ans=(x^2-1)/(x^3+x^2-2)多项式的幂:x^p或power(x,p)其中x是多项式,p是正整数。多项式展开:expand(x)展开多项式x。多项式因式分解:factor(x)在有理数域上因式分解开多项式x。例如:>>f3=f1^3%多项式f1的三次方f3=(x^2-1)^3>>f4=power(f1,3)%多项式f1的三次方f4=(x^2-1)^3>>expand(f3)%展开多项式f3ans=x^6-3*x^4+3*x^2-1>>f5=factor(f2)%将多项式f2因式分解f5=(x-1)*(x^2+2*x+2)最大公因式:gcd(x,y)x与y的最大公因式。[g,c,d]=gcd(x,y)其中g=cx+dy.最小公倍式:lcm(x,y)x与y的最小公倍式。例如:>>gcd(f1,f2)%求多项式f1与f2的最大公因式ans=x-1>>[g,c,d]=gcd(f1,f2)%最大公因式的组合g=x-1c=-1-xd=1>>lcm(f1,f2)%求多项式f1与f2的最小公倍式ans=(x+1)*(x^3+x^2-2)多项式的根:solve(x)例如:>>solve(f2)%求多项式f2的根ans=1-1+i-1-i多项式函数求导运算:diff(x)多项式x的导函数。例如:>>g=diff(f2)%求多项式f2的导函数g=3*x^2+2*x表2-1多项式函数的一些相关命令conv(a,b)乘法x^p多项式幂运算[q,r]=deconv(a,b)带余除法power(x,p)多项式幂运算poly(r)用根构造多项式expand(x)多项式展开poly2str(f,'x')多项式符号表达式factor(x)多项式因式分解polyder(x)多项式求导roots(x)求多项式的根diff(x)符号多项式求导solve(x)求符号多项式的根polyval(f,x)计算f(x)的值gcd(x,y)求最大公因式lcm(x,y)求最小公倍式[g,c,d]=gcd(x,y)求最大公因式的组合

【实验内容】例2-1:已知多项式,计算.解一:相应的matlab代码及运算结果如下:>>clear>>a=[305];b=[10-1-1];>>f=poly2str(a,'x'),g=poly2str(b,'x')f=3x^2+5g=x^3-1x-1>>c=[0,a]+2*b;%f+2g>>fplus2g=poly2str(c,'x')fplus2g=2x^3+3x^2-2x+3>>d=conv(a,b)%fgd=302-3-5-5>>fg=poly2str(d,'x')fg=3x^5+2x^3-3x^2-5x–5>>f3=conv(a,conv(a,a))%f^3f3=10601208解二:相应的matlab代码及运算结果如下:>>clear>>symsx>>f=3*x^2+5,g=x^3-x-1f=3*x^2+5g=x^3-x-1>>fplus2g=f+2*g%f+2gfplus2g=3*x^2+3+2*x^3-2*x>>fg=expand(f*g)%fgfg=3*x^5+2*x^3-3*x^2-5*x-5>>f3=expand(f^3)%f^3f3=27*x^6+135*x^4+225*x^2+125>>power(f,3)%f^3ans=(3*x^2+5)^3例2-2:用除,求商与余式,其中.相应的matlab代码及运算结果如下:>>clear>>a=[100-25];b=[1-12];>>f=poly2str(a,'x'),g=poly2str(b,'x')%多项式f(x),g(x)f=x^4-2x+5g=x^2-1x+2>>[Q,R]=deconv(a,b)%f(x)除g(x)Q=11-1R=000-57>>q=poly2str(Q,'x')%商式q=x^2+x-1>>r=poly2str(R,'x')%余式r=-5x+7例2-3:设,求使得.相应的matlab代码及运算结果如下:>>formatrat%数据以有理数的形式输出>>clear>>f=sym('4*x^4-2*x^3-16*x^2+5*x+9'),g=sym('2*x^3-x^2-5*x+4')%多项式f(x),g(x)f=4*x^4-2*x^3-16*x^2+5*x+9g=2*x^3-x^2-5*x+4>>[d,u,v]=gcd(f,g)%求f(x),g(x)的最大公因式及组合d=x-1u=1/3-1/3*xv=-1+2/3*x^2-2/3*x%所以例2-4:求多项式的根,并在有理数域上进行因式分解.解一:相应的matlab代码及运算结果如下:>>format>>clear>>a=[1-57-24-8];%多项式f的向量表达式>>f=poly2str(a,'x')%多项式f的符号表达式f=x^5-5x^4+7x^3-2x^2+4x-8>>roots(a)%f的全部根ans=2.0000+0.0000i2.0000-0.0000i2.0000-0.5000+0.8660i-0.5000-0.8660i解二:相应的matlab代码及运算结果如下:>>clear>>formatrat>>symsx>>f=x^5-5*x^4+7*x^3-2*x^2+4*x-8f=x^5-5*x^4+7*x^3-2*x^2+4*x-8>>solve(f)%求f的全部根ans=-1/2+1/2*i*3^(1/2)-1/2-1/2*i*3^(1/2)222>>factor(f)%对f进行因式分解ans=(x^2+1+x)*(x-2)^3例2-5:已知-1,-1,1-2i是四次多项式的根,求.相应的matlab代码及运算结果如下:>>clear>>a=[-1,-1,1-2i,1+2i];%四次多项式f(x)有四个根,其中一对共轭复根>>b=poly(a);>>f=poly2str(b,'x')%由根生成的多项式ff=x^4+2x^2+8x+5例2-6:判断-1是否为多项式的根,若是,再判断是否为重根.相应的matlab代码及运算结果如下:>>clear>>a=[10-68-3];%多项式f的向量表达式>>f=poly2str(a,'x')f=x^4-6x^2+8x-3>>polyval(a,1)%求f(1)ans=0%因为f(1)=0,所以1是f(x)的根,下面判断是否为重根>>b=polyder(a);%多项式f的导函数>>df=poly2str(b,'x')df=4x^3-12x+8>>polyval(b,1)%判断1是否为f的导函数的根ans=0%因为df(1)=0,所以1是f(x)的导函数的根,进而为重根.实验三行列式的运算及其应用【实验目的】1.了解MATLAB中矩阵的表示;2.了解MATLAB中行列式的概念及基本性质;3.了解克拉默法则;4.学习、掌握MATLAB软件有关的命令。【实验准备】1.矩阵的表示MATLAB的强大功能之一体现在能直接处理向量或矩阵。当然首要任务是输入待处理的向量或矩阵。不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号([])内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多重的方括号。即:数值矩阵输入格式:变量名=[矩阵数据]或变量名=sym([矩阵数据])输入矩阵方法:用键盘上方括号“[]”代替矩阵括号。矩阵数据在方括号内按行输入,同一行相邻元素用空格(或逗号)隔开,相邻两行用分号“;”隔开。例如:>>A=[1234;5,6,7,8;9101112]%输出3行4列的矩阵AA=123456789101112>>B=[123;234;345]

B=1232343451.2符号矩阵的生成在MATLAB中输入符号向量或者矩阵的方法和输入数值类型的向量或者矩阵在形式上很相像,只不过要用到符号矩阵定义函数sym,或者是用到符号定义函数syms,先定义一些必要的符号变量,再像定义普通矩阵一样输入符号矩阵。1.用命令sym定义矩阵(定义矩阵为字符串):这时的函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者是表达式,而且长度没有限制,只是将方括号置于用于创建符号表达式的单引号中。例如:>>A=sym([1234;5,6,7,8;9101112])%输出带符号的矩阵AA=[1,2,3,4][5,6,7,8][9,10,11,12]

>>matrix=sym('[abc;Jack,HelpMe!,NOWAY!],')matrix=[abc][JackHelpMe!NOWAY!]2.用命令syms定义矩阵先定义矩阵中的每一个元素为一个符号变量,而后像普通矩阵一样输入矩阵数据。例如:输出符号矩阵。>>symsabcd%输出符号矩阵A>>A=[ab;cd]A=[a,b][c,d]或>>A=sym('[ab;cd]')%输出符号矩阵AA=[a,b][c,d]又如:>>symsabc;>>M1=sym('Classical');>>M2=sym('Jazz');>>M3=sym('Blues')>>syms_matrix=[abc;M1,M2,M3;int2str([235])]syms_matrix=[abc][ClassicalJazzBlues][235]2.向量、矩阵的访问与赋值更改、增加或删除向量的元素。例如:>>clear>>x=[3745]%输出4维行向量xx=3745>>x(3)=2%更改第三个元素x=3725注:x(i)表示向量x的第i个分量。>>x(6)=10%加入第六个元素(给第六个元素赋值)x=3725010>>x(4)=[]%删除第四个元素x=372010注:在对第六个元素进行赋值时,若未曾对第五个元素赋值,则默认为零。上述运算,结果均返回为变量x。MATLAB亦可取出向量的一个元素或一部份来做运算。例如:>>clear>>x=[1234];y=[24680];>>x(2)*3+y(4)%取出x的第二个元素和y的第四个元素来做运算ans=14>>y(2:4)-1%取出y的第二至第四个元素来做运算ans=357在上例中,2:4代表一个由2、3、4组成的向量,同样的方法可用于产生公差为1的等差数列,例如:>>z=7:16z=78910111213141516若不希望公差为1,则可将所需公差直接至于4与13之间,例如:>>w=7:3:16%公差为3的等差数列w=7101316同样地,我们可以对矩阵进行各种处理。例如:>>clear>>A=sym([1234;5678;9101112])%输出一个3行4列的矩阵A=[1,2,3,4][5,6,7,8][9,10,11,12]>>A(2,3)=5%改变第二列,第三行的元素值A=[1,2,3,4][5,6,5,8][9,10,11,12]注:A(i,j)表示矩阵A的(I,j)元,括号中,逗号前面表示行,后面表示列>>A(2,:)%第2行的所有元素ans=[5,6,5,8]>>B=A(2,1:3)%取出部份矩阵BB=[5,6,5]>>A=[AB']%将B转置后以列向量并入AA=[1,2,3,4,5][5,6,5,8,6][9,10,11,12,5]注:矩阵合并,若按照行的形式合并,则用;隔开;若按列的形式合并,则用空格或逗号隔开,例如:>>A(:,2)=[]%删除第二列(:代表所有行)A=[1,3,4,5][5,5,8,6][9,11,12,5]>>A=[A;4321]%加入第四行A=[1,3,4,5][5,5,8,6][9,11,12,5][4,3,2,1]注:A是以一维数组的形式存取的,故默认最后一行。>>C=[6,7,8,9]C=6789>>D=[5,5;6,6;7,7;8,8;]D=55667788>>E=[D(:,1),C',D(:,2)]%D第1列和第2列之间插入列向量CE=565676787898>>A([14],:)=[]%删除第一和第四行(:代表所有列)A=[5,5,8,6][9,11,12,5]表3-1矩阵访问与赋值常用的相关指令格式指令格式指令功能指令格式指令功能x(i)向量x的第i各分量A(i)矩阵A作为一维数组的第i各元素A(i,j)矩阵A的(i,j)元A(:)矩阵A以一维数组的形式输出A(i,:)矩阵A的第i行A(i:j,:)矩阵A的第i行到第j行元素组成的子矩阵A(:,j)矩阵A的第j列

3.运算矩阵的转置:A’矩阵的行列式:det(A)注意:在方阵的前提下,才可以作行列式运算。4.Cramer法则当系数行列式时,方程组有唯一解为,其中这里简单介绍线性方程组的基本概念:线性方程组可写成如下矩阵的形式,其中.【实验内容】例3-1:输出矩阵,计算(1)A的转置;(2);(3)删除A第一行,取出A的第二列.相应的matlab代码及运算结果如下:>>clear>>A=[311;212;123]%输出矩阵AA=311212123>>A'%A的转置ans=321112123>>det(A)%A的行列式ans=-4>>A(1,:)=[]%删除A第一行A=212123>>A1=A(:,2)'%取出A的第二列A1=112例3-2:计算行列式.相应的matlab代码及运算结果如下:>>clear>>symsabcd%定义符号变量>>A=[a,b,c,d;aa+ba+b+ca+b+c+d;a2*a+b3*a+2*b+c4*a+3*b+2*c+d;...a3*a+b6*a+3*b+c10*a+6*b+3*c+d]%输出符号矩阵A=[a,b,c,d][a,a+b,a+b+c,a+b+c+d][a,2*a+b,3*a+2*b+c,4*a+3*b+2*c+d][a,3*a+b,6*a+3*b+c,10*a+6*b+3*c+d]>>D=det(A)%计算A的行列式D=a^4例3-3:应用Cramer法则求解下列线性方程组的解.相应的matlab代码及运算结果如下:>>A=[21-51;1-30-6;02-12;14-76];%系数矩阵>>C1=A;C2=A;C3=A;C4=A;b=[8;9;-5;0];%将A赋值给不同变量>>C1(:,1)=b;D1=det(C1);x1=D1/D%求解x1x1=3>>C2(:,2)=b;D2=det(C2);x2=D2/D%求解x2x2=-4>>C3(:,3)=b;D3=det(C3);x3=D3/D%求解x3x3=-1>>C4(:,4)=b;D4=det(C4);x4=D4/D%求解x4x4=1例3-4:验证行列式的性质:把一行的倍数加到另一行,行列式不变.相应的matlab代码及运算结果如下:>>clear>>A=[5478;6524;1038;5766]%任意输入方阵AA=5478652410385766>>det(A)%计算A的行列式ans=-448>>symsk%任意常数k>>B=[A(1:3,:);k*A(1,:)+A(4,:)]%A的第一行的k倍加到第四行得矩阵BB=[5,4,7,8][6,5,2,4][1,0,3,8][5*k+5,4*k+7,7*k+6,8*k+6]>>det(B)%计算B的行列式ans=-448%因为A,B行列式的值相同,从而验证的行列式的性质。【练习与思考】1.计算下列行列式(CHAP213(2)(4))1);2).2.2.已知,求与的系数.(CHAP210)3.求解下列线性方程组1);2).4.验证行列式的性质:对换行列式中两行的位置,行列式反号线性方程组的求解1.了解线性方程组的基本概念;2.掌握线性方程组求解的方法;3.学会判断向量的线性相关性4.学习、掌握MATLAB软件有关的命令。【实验准备】一、秩与线性相关性1.矩阵和向量组的秩以及向量组的线性相关性矩阵A的秩是矩阵A中最高阶非零子式的阶数;向量组的秩通常由该向量组构成的矩阵来计算。函数rank格式k=rank(A)%返回矩阵A的行(或列)向量中线性无关个数k=rank(A,tol)%tol为给定误差例4-1求向量组,,,,的秩,并判断其线性相关性。>>A=[1-2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论