当前位置:文档之家› Matlab入门基础知识整理

Matlab入门基础知识整理

MATLAB基础知识MATLAB的主要功能1.数值计算和符号计算功能例如,求解线性方程组在MATLAB命令窗口输入命令:a=[2,3,-1;3,-5,3;6,3,-8];b=[7;8;9];x=inv(a)*b也可以通过符号计算来解此方程syms x1 x2 x3[x1,x2,x3]=solve(2*x1+3*x2-x3-7,3*x1-5*x2+3*x3-8,6*x1+3*x2-8*x3-9)2.绘图功能例如,分别绘制函数y=300sinx/x和y=x2的曲线x=-20:0.1:20;plot(x,300*sin(x)./x,':',x,x.^2);3.程序设计语言功能MATLAB是解释性语言,程序执行速度较慢,而且不能脱离MATLAB环境而独立运行。

MathWorks公司提供了将MATLAB源程序编译为独立于MATLAB集成环境运行的EXE文件以及将MATLAB程序转化为C语言程序的编译器。

4.扩展功能MATLAB包含两部分内容:基本部分和各种可选的工具箱。

基本部分构成了MATLAB的核心内容,也是使用和构造工具箱的基础。

工具箱扩展了MATLAB的功能。

功能性工具箱学科性工具箱MATLAB的集成开发环境命令窗口(Command Window)用于输入命令并显示除图形以外的所有执行结果。

一般来说,一个命令行输入一条命令,命令行以回车或分号结束但一个命令行也可以输入若干条命令,各命令之间以逗号或分号隔开如果一个命令行很长,一个物理行之内写不下,可以在第1个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。

3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。

例如:z=1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)+ …1/(1*2*3*4*5)工作空间(Workspace)是MATLAB用于存储各种变量的内存空间。

当前目录(Current Directory)是指MATLAB运行时的工作目录,只有在当前目录下的文件、函数才可以被运行或调用。

如果没有特殊指明,数据文件也将存放在当前目录下。

命令历史窗口自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。

而且,通过双击命令可进行历史命令的再运行。

MATLAB的帮助功能进入MATLAB帮助界面可以通过以下方法。

●单击MATLAB主窗口工具栏中的Help按钮。

●输入帮助命令。

帮助命令1.help命令在命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目。

help加函数名:显示该函数的帮助说明。

例如help magic2.lookfor命令例如lookfor fourier演示系统在命令窗口输入“demos”,或者选择主窗口“Help”菜单中的“Demos”子菜单,打开的演示系统如图所示。

MATLAB的变量和数据操作预定义变量1.变量命名变量名只能是以字母开头,后接字母、数字或下画线的字符序列,最多63个字符。

例如x、x_1、xy12在MATLAB中,变量名区分字母的大小写。

例如addr、Addr和ADDR表示3个不同的变量。

2.赋值语句MATLAB赋值语句有两种格式:(1)变量=表达式;(2)表达式第1种语句形式下,MATLAB将右边表达式的值赋给左边的变量第2种语句形式下,将表达式的值赋给MATLAB的预定义变量ans。

在语句的最后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运算的结果。

注释以%开头计算表达式的值,并将结果赋给变量y,然后显示出结果。

x=sqrt(1+pi);y=(exp(x)+log(abs(sin(x)^2-sin(x*x))))/(x-5*i)y =0.5690 + 1.3980i其中,pi和i都是MATLAB定义的变量,分别代表圆周率π和虚数单位。

预定义变量3. 变量的管理变量的显示与删除显示whowhos 还给出它们的维数、所占字节数以及变量的类型。

删除clcclear变量文件利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来。

MAT文件是MATLAB保存数据的一种标准格式二进制文件,扩展名是.mat。

MAT文件的生成和装入save 文件名[变量名表] [-append][-ascii]load 文件名[变量名表] [-ascii]数据的输出格式输入x=[4/3 1.2345e-6]系统默认小数点后四位用format命令设置数据输出格式format 格式符短格式(short):1.3333 0.0000短格式e方式(short e):1.333e+00 1.2345e-06长格式(long):1.33333333333333 0.00000123450000长格式e方式(long e):1.33333333333333e+000 1.23450000000000e-006银行格式(bank):1.33 0.00十六进制格式(hex):3ff5555555555555 3eb4b6231abfd271MATLAB矩阵及基本运算矩阵的生成1.直接输入法将矩阵的所有元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。

矩阵元素也可以是表达式,MATLAB将自动计算结果。

例如:B=[10,5-sqrt(7),sin(pi/2);7,4*8,abs(-7)]矩阵元素可以是复数虚部i也可以分别建立实部矩阵和虚部矩阵,再合起来构成复数矩阵。

例如:R=[1,2,3;4,5,6];I=[1.1,2.2,3.3;4.4,5.5,6.6];ri=R+i*I利用已建好的矩阵建立更大的矩阵例如:A=[1,2,3;4,5,6;7,8,9];B=[11:13;14:16;17:19];C=[A,B;B,A]2. 冒号表达式利用冒号可以产生行向量。

冒号表达式的一般格式为a:b:c其中,a为初始值,b为步长,c为终止值(c > a)。

例如:t=0:2:10t =0 2 4 6 8 10还可以用linspace函数产生行向量。

其调用格式为linspace(a,b,n)其中a和b是生成向量的第1个和最后一个元素,n是元素总数。

当n省略时,自动产生100个元素。

显然,linspace(a,b,n)与a:(b − a)/(n − 1):b等价。

矩阵(元素)的替换、提取和矩阵拆分如果想将矩阵A的第2行第3列的元素赋为76,则可以通过下面语句来完成:A(2,3)=76 不影响其他元素的值。

也可以采用矩阵元素的序号来引用矩阵元素。

矩阵元素按列编号,先第1列,再第2列,依次类推。

以m × n矩阵A为例,矩阵元素A(i, j)的序号为(j−1)*m + i。

size(A)函数返回包含两个元素的向量,分别是矩阵A的行数和列数length(A):给出行数和列数中的较大者利用冒号表达式获得子矩阵①A(m,n)表示取A矩阵第m行、第n列的元素A(m,:)表示取A矩阵第m行的全部元素A(:,n)表示取A矩阵的第n列全部元素②A(m1:m2,:)表示取A矩阵第m1~m2行的全部元素A(:,n1:n2)表示取A矩阵第n1~n2列的全部元素,A(m1:m2,n1:n2)表示取A矩阵第m1~m2行内,并在第n1~n2列中的所有元素。

利用空矩阵删除矩阵的元素空矩阵是指无任何元素的矩阵,表示形式为[ ]。

给变量x赋空矩阵的语句为x=[ ]将某些元素从矩阵中删除,采用将其置为空矩阵的方法就是一种有效的方法。

例如:A=[1 2 3 4 5 6;7 8 9 10 11 12;13 14 15 16 17 18];A(:,[2 4])=[ ]算术运算MATLAB的基本算术运算有:+(加)、−(减)、*(乘)、/(右除)、\(左除)、^(乘方)。

(1)矩阵加减运算运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B 矩阵的相应元素相加减。

如果A与B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。

一个标量也可以和其他不同维数的矩阵进行加减运算。

例如:x=[2,-1,0;3,2,-4];y=x-1;y=y+x(2)矩阵乘法矩阵A和B进行乘法运算,要求A的列数与B的行数相等,或称A和B两矩阵维数相容。

如果两者的维数不相容,则将给出错误信息,提示用户两个矩阵是不可乘的。

例如:A=[1,2,3;4,5,6];B=A*A??? Error Inner matrix dimensions must agree.在MATLAB中,还可以进行矩阵和标量相乘。

矩阵和标量相乘是矩阵中的每个元素与此标量相乘。

(3)矩阵除法在MATLAB中,有两种矩阵除法运算:\和/,分别表示左除和右除。

如果A矩阵是非奇异方阵,则A\B和B/A运算可以实现。

A\B等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。

(4)矩阵的乘方一个矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。

2.点运算两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。

点运算符有.*、./、.\和.^。

例如:A=[1,2,3;4,5,6;7,8,9];B=[-1,0,1;1,-1,0;0,1,1];C=A.*BC =-1 0 34 -5 00 8 9如果A、B两矩阵具有相同的维数,则A./B表示A矩阵除以B矩阵的对应元素。

B.\A等价于A./B。

3.MATLAB常用数学函数例如:y=sin(0:pi/2:2*pi)y =0 1.0000 0.0000 -1.0000 -0.0000y=abs(y)y =0 1.0000 0.0000 1.0000 0.0000abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。

x=[-3.14,3+4i];abs(x)ans =3.1400 5.0000用于取整的函数有fix、floor、ceil、round向0方向取整函数fix:调用格式为I=fix(X),功能:返回X中每个元素的最靠近零的整数,若X为复数,则分别对X实部和虚部取整。

向-∞方向取最小整数函数floor向∞方向取最大整数函数ceil四舍五入取整函数round模数余函数mod:调用格式为M=mod(X,Y),功能:返回X关于Y的余数,其算法为:mod(X,Y)=x-y.*floor(X./Y) 例如:>>x1=mod(16,3) >>x2=mod(-16,3) >>x3=mod(16,-3)x1= x2= x3=1 2 -2除后余数函数rem:调用格式为M=rem(X,Y),功能:返回X关于Y的余数,其算法为:rem(X,Y)=x-y.*fix(X./Y) ,相当于去零留整,与C语言中取余%功能相同例如:>>x1=rem(16,3) >>x2=rem(-16,3) >>x3=rem16,-3)x1= x2= x3=1 -1 1符号函数sign:调用格式为sign(X),功能:若X>0,返回1;若X=0,返回0;若X<0,返回-1。

相关主题