当前位置:文档之家› Matlab知识点

Matlab知识点

Matlab知识点
Matlab知识点

零、帮助

1、help命令:如help fun 显示某函数的功能和语法描述。如help sin。若单独使用help

命令,则显示出帮助主题。

2、lookfor命令:如lookfor XYZ 在所有的M文件中查找XYZ关键词。

一、变量

1、Matlab区分大小写;标准函数及命令字母必须小写。

2、命令后加分号,则不显示运算结果。

3、注释以%开头。

4

5、who、whos命令:显示工作空间中的变量清单或列表。

6、clear命令:删除工作空间中的变量。

7、较大矩阵数值的输入:在命令窗口中向一个新变量赋空阵,在工作空间窗口中双击该变

量,打开变量编辑器,填表即可。

8、save命令:把一些变量存储到磁盘文件(.mat),文件名中不能出现后缀。

9、load命令:将文件中的变量调入内存。

10、单个数据的算术运算只是矩阵运算的特例。

11、常用算术运算符:+ - * / \ ^ ( )

12、关系运算符:< <= > >= == ~=(不等于)

13、逻辑运算符:&(与)、|(或)、~(非)

二、常用数学函数

1、三角函数以弧度为单位。

2、abs函数还可求字符串的ASCII码。

3、这些函数几乎都可以针对向量或矩阵进行运算。

三、数据的输出格式

1、format命令:设置或改变数据输出的格式。其格式符如下:

四、矩阵运算(向量是特殊的矩阵)

1、直接输入法建立矩阵:矩阵元素用方括号括起来,按矩阵行顺序输入各元素,同一行各

元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。如:A=[1,2,3;4,5,6]

2、利用.m文件建立矩阵:即将矩阵的赋值命令写入到一个.m文件中,并运行该文件。

3、利用冒号表达式建立一个向量:A=e1:e2:e3 其中,e1为初始值、e2为步长、e3为终止

值。e2可省略,如A=e1:e3,则步长为1。

4、linspace函数:也可产生一个行向量,如A=linspace(a,b,n) 其中,a为第1个元素,

b为最后一个元素,n为元素总数。n可省略,默认产生100个元素。

5、利用已建好的矩阵建立更大的矩阵:如:A=[B,C;C,B]。

6、矩阵元素的引用:如A(3,2)=200 即对矩阵A的第3行第2列的元素赋值为200。若赋值

时给出的下标超出范围,则将对A进行扩展,扩展后的未赋值矩阵元素置0。

7、矩阵按列存储。矩阵元素也可按序号进行引用,如A(2)=100。

8、size函数:如[l,c]=size(A),返回两个元素的向量,分别是矩阵A的行数和列数。

9、sub2ind函数:如sub2ind(size(A),l,c),返回矩阵A的第l行第c列元素的序号。

10、ind2sub函数:如[l,c]=ind2sub(size(A),n),返回矩阵A中序号为n的元素的行列下

标值。

11、length函数:如length(A) 返回矩阵A的行数和列数中的较大者。

12、ndims函数:如ndims(A) 返回A的维数。

13、利用冒号表达式获得子矩阵

①如A(a,:) 表示矩阵A的第a行的全部元素。

②如A(:,b) 表示矩阵A的第b列的全部元素。

③如A(a:b,:) 表示矩阵A的第a行至第b行的全部元素。

④如A(:,a:b) 表示矩阵A的第a列至第b列的全部元素。

⑤如A(a:b,c:d) 表示矩阵A的第a行至第b行内的且在第c列至第d列中的所有元素。

⑥如A(end,:) 表示矩阵A的最后一行的全部元素。

⑦如A([a,b],c:end) 表示矩阵A的第a和第b两行中第c列至最后一列的全部元素。

14、A(:) 将矩阵A的每一列元素堆叠起来,成为一个列向量。

15、空矩阵:如A=[]

16、利用空矩阵删除矩阵元素:如A(:,[a,b])=[] 即删除矩阵A的第a列和第b列元素。

17、reshape函数:如reshape(A,m,n) 在矩阵A总元素个数保持不变的前提下,将矩阵A

重新排成m行n列的矩阵。该函数不改变矩阵元素个数和存储结构。

18、通用的特殊矩阵

① zeros函数:产生全0矩阵,即零矩阵。

② ones函数:产生全1矩阵,即幺矩阵。

③ eye函数:产生单位矩阵。

④ rand函数:产生0到1之间均匀分布的随机矩阵。

⑤ randn函数:产生均值为0、方差为1的标准正态分布随机矩阵。

⑥以上函数的用法类似,如zeros(n)产生n行n列的零矩阵、zeros(m,n)产生m行n

列的零矩阵。

⑦如a+(b-a)*rand(n) 即在区间[a,b]内均匀分布的产生n阶随机矩阵。

⑧如a+sqrt(b)*randn(n) 即产生均值为a、方差为b的n阶正态分布随机矩阵。

19、专门的特殊矩阵

① magic函数:如magic(n) 产生n阶魔方矩阵。

② vander函数:如vander(V) 产生以向量V为基础向量的范德蒙矩阵。

③ hilb函数:如hilb(n) 产生n阶希尔伯特矩阵。

④ invhilb函数:如invhilb(n) 产生n阶希尔伯特矩阵的逆矩阵。

⑤ toeplitz函数:如toeplitz(C,R) 产生以向量C为第1列,向量R为第1行的托普

利兹矩阵;如toeplitz(C) 产生以向量C生成的对称托普利兹矩阵。

⑥ compan函数:如compan(P) 产生多项式的伴随矩阵,P为多项式的系数向量。

⑦ pascal函数:如pascal(n) 产生n阶帕斯卡矩阵。

20、矩阵基本算术运算

①加减:如C=A+B、C=A-B 其中,A与B同维;另外,A或B也可以是标量。

②乘法:如C=A*B 其中,A或B也可以是标量。

③除法:如C=A\B(左除,相当于A的逆左乘B)、C=A/B(右除,相当于B的逆右乘A),

其中,A或B也可以是标量。

④幂:如C=A^x 其中,x是一个数(可以是复数)。

21、点运算:在有关的算术运算符前面加点,表示两个矩阵对应元素进行相关运算,要求两

个矩阵同维。如:C=A.*B、C=A./B、C=A.^x、C=A.^B(A与B同维)、C=x.^A(x为标量,A为矩阵)

22、函数运算:如C=sin(A) A为矩阵,则对A的每一个元素求其正弦值,运算结果是与A

同维的矩阵(或向量)。

23、关系运算

①运算符:< <= > >= == ~=(不等于)。

② 1表示真、0表示假。

③如:C=A

C为0、1矩阵。

④参加运算的A或B也可以是标量。

24、逻辑运算

①运算符:&(与)、|(或)、~(非)。

②非零元素为真,用1表示;零元素表示假,用0表示

③如:C=A&B、C=~A 其中,A与B同维,且相同位置的对应元素进行逻辑运算,结果C

为0、1矩阵。

④参加运算的A或B也可以是标量。

25

位置的元素值。

26、diag函数

①如B=diag(A) 即提取矩阵A的主对角线元素,形成向量B。

②如B=diag(A,k) 即提取矩阵A的第k条对角线元素,形成向量B。(即与主对角线平

行,向上为第1条、第2条、…,向下为第-1条、第-2条、…,主对角线为第0条)

③如B=diag(V) 其中V是m个元素的向量,此时,产生一个m阶对角矩阵B,其主对

角线元素为向量V的元素。

④如B=diag(V,k) 其中V是m个元素的向量,此时,产生一个(m+|k|)阶对角矩阵B,

其第k条对角线元素为向量V的元素。

27、triu函数

①如B=triu(A) 即提取矩阵A的上三角元素,形成向量B。

②如B=triu(A,k) 即提取矩阵A的第k条对角线以上的元素,形成向量B。

28、tril函数:提取矩阵的下三角,与triu函数类似。

29、矩阵的转置:如B=A’。

30、rot90函数:将矩阵A按逆时针旋转90度的k倍。如B=rot90(A,2) 即矩阵A逆时针旋

转180度。当k为1时可省略,如B=rot90(A)。

31、fliplr函数:将矩阵A进行左右翻转。如B=fliplr(A)。

32、flipud函数:将矩阵A进行上下翻转。如B=flipud(A)。

33、inv函数:求矩阵的逆。如B=inv(A) 其中A为满秩的方阵。

34、pinv函数:求矩阵的伪逆。如B=pinv(A) 其中A可以不是方阵或非满秩的方阵。

35、det函数:求方阵的行列式值。如d=det(A)。

36、rank函数:求矩阵的秩。如r=rank(A)。

37、trace函数:求矩阵的迹。如t=trace(A)。

38、norm函数:求向量或矩阵的范数。

①如v=norm(A,1) 求向量或矩阵的1-范数。

②如v=norm(A) 或 v=norm(A,2) 求向量或矩阵的2-范数。

③如v=norm(A,inf) 求向量或矩阵的无穷范数。

39、cond函数:求矩阵的条件数

①如c=cond(A,1) 求矩阵A的1-范数下的条件数。

②如c=cond(A) 或 c=cond(A,2) 求矩阵A的2-范数下的条件数。

③如c=cond(A,inf) 求矩阵A的无穷范数下的条件数。

40、eig函数:求矩阵的特征值与特征向量。

①如E=eig(A) 求矩阵A全部特征值,形成向量E。

②如[V,D]=eig(A) 通过对矩阵A进行相似变换求A的全部特征值构成对角阵D,并求

A的特征向量构成V的列向量。

③如[V,D]=eig(A,’nobalance’) 与②类似,但不是通过相似变换求解,而直接进行

求解。

41、矩阵的超越函数

① sqrtm函数:如B=sqrtm(A) 求矩阵A的平方根。相当于A^0.5。

② logm函数:如B=logm(A) 求矩阵A的自然对数。

③ expm函数:如B=expm(A) 求自然常数e的A次幂。

④ funm函数:如B=funm(A,@fun) 即求直接作用于矩阵A的由fun指定的超越函数值。

如B=funm(A,@sin),这里fun可以是exp、log、sin、cos、sinh、cosh。

42、稀疏矩阵

①采用三元组按列存储。

② sparse函数:如S=sparse(A) 将矩阵A转化为稀疏存储方式的矩阵S;S=sparse(m,n)

生成一个m行n列的所有元素都是0的稀疏矩阵S;S=sparse(U,V,A) 其中U、V、A 是3个等长的向量,A是要建立的稀疏矩阵的非零元素向量,U和V分别是对应的行和列下标值向量。

③ find函数:如[U,V,A]=find(S) 返回矩阵S中非零元素的下标和元素。

④ full函数:如A=full(S) 返回和稀疏矩阵S对应的完全存储方式矩阵。

⑤ spconvert函数:如S=spconvert(A) 其中A是一个m行3列或m行4列的矩阵,m

是非零元素的个数,A的4个列的含义依次为非零元素所在的行、非零元素所在的列、非零元素的实部、非零元素的虚部,若非零元素为实数,则无需第4列。

⑥ spdiags函数:如[B,d]=spdiags(A) 从原带状矩阵A中提取全部非零对角线元素赋

给矩阵B及这些非零对角线的位置向量d;又如[B]=spdiags(A,d) 从原带状矩阵A 中提取由向量d所指定的那些非零对角线元素构成矩阵B;又如S=spdiags(B,d,m,n) 利用具有稀疏特征的带状矩阵生成稀疏矩阵S,其中m和n分别为原带状矩阵的行数和列数。

⑦ speye函数:如S=speye(m,n) 返回一个m行n列的稀疏存储的单位矩阵。

⑧稀疏矩阵的运算规则与普通矩阵一样。当参与运算的对象不全是稀疏矩阵时,所得

结果一般是完全存储形式的矩阵。

43、sum函数:如s=sum(V) 当V是向量时,返回该向量全部元素的和;又如S=sum(A) 当A

是矩阵时,返回值S是一个由A中列向量元素之和所构成的行向量。

五、字符串

1、字符串是用单撇号括起来的字符序列。如s='abc'

2、Matlab将字符串当作一个行向量,每个元素对应一个字符。因此,矩阵的许多使用方法

和函数都可以在此进行应用。如s1=s(1:5) 即在s中取子串、k=find(s>='a'&s<='z') 即在s中找出小写字母的位置。

3、也可以建立多行字符串矩阵。如S=['abc';'123'] 但要求各行字符数要相等,或用空格

来调节各行的长度使之彼此相等。

4、常用字符串处理函数

5

6、如disp(['The value of x is',num2str(x)]) 显示字符串及变量值所对应的串值。

六、结构数据

1、结构矩阵的建立:结构矩阵名.成员名=表达式

如:a.x1=10; a.x2=[1,2;3,4]; a(2).x1=20; a(2).x2=[4,3;2,1];

2、结构矩阵元素的成员也可以是结构数据。

3、对结构数据的引用,可以引用其成员,也可引用结构矩阵的元素,也可引用结构变量。

4、结构成员的增加:如a(1).x3=30; 即给结构矩阵的任一个元素增加成员即可,其他成员

均为空值。

5、rmfield函数:删除结构成员。如a=rmfield(a,'x3')

6、关于结构的函数

七、单元数据

1、单元矩阵的各个元素就是不同类型的数据。

2、单元矩阵的建立:和一般矩阵相似,只是矩阵元素用大括号括起来。

如a={10,'a',[1,2;3,4];20,'b',[4,3;2,1]}

3、单元矩阵的引用:用带有大括号下标的形式。如a{2,1}=30。

4、celldisp函数:如celldisp(c) 显示整个单元矩阵。

5、删除单元矩阵中的某个元素:如c(2)=[] 即删除单元矩阵c中的第2个元素。(c{2}=[]

表示将单元矩阵c中的第2个元素置空,但并不删除)

6

八、程序设计

1、利用Matlab编写的程序,称为M文件。是一个文本文件。(Matlab提供的内部函数和各

种工具箱,都是利用Matlab命令开发的M文件)。M文件要放在Matlab的工作目录中或其它目录(将该目录加到Matlab的搜索路径中)

2、M文件的两种类型

①命令文件:没有输入和输出参数;对Matlab工作空间中的变量进行操作,文件中所

有命令的执行结果也完全返回到工作空间中;在Matlab的命令窗口中输入文件名可直接运行。

②函数文件:可以有输入和返回参数;文件中变量为局部变量;需要以函数调用的方

式运行。

3、edit命令:打开文本编辑器;若采用edit 文件名的格式,则打开或新建一个M文件。

4、input函数:如x=input(提示串,选项) 提示串是一个字符串;从键盘输入的数据赋值

给变量x;若输入为字符串,则需要选项’s’;键盘输入时的数据格式与数据赋值时的数据格式一致。

5、disp函数:如disp(A) 其中A是变量,与可以是字符串;显示A的值。又如disp([字

符串,num2str(a)]) 即将字符串与变量值转换为串后一同显示。

6、pause函数:如pause(延迟秒数) 使程序暂停数秒;若直接使用pause函数,则程序暂

停,直至用户按任一键继续;若强行中止程序的运行,可按Ctrl+C组合键。

7、if语句

① if 条件语句组 end

② if 条件语句组 else 语句组 end

③ if 条件语句组 elseif 条件语句组… elseif 条件语句组 else 语句组 end

8、switch语句

switch 表达式

case 值1

语句组1

otherwise

语句组n

end

9、try语句

try

语句组1

catch

语句组2

end

try语句执行语句组1,若在执行过程中出错,则将错误信息赋给预定义变量lasterr,并转去执行语句组2。

10、for语句

① for 循环变量=初值:步长:终值循环体语句 end

②步长为1时可省略,即初值:终值

③循环语句的执行速度较慢,有时可用点运算来代替循环。

④ for 循环变量=矩阵表达式循环体语句 end

⑤④格式的执行过程依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直

至各列元素处理完毕。

⑥实际上,(初值:步长:终值)是一个行向量,可视为仅为一行的矩阵,每列是单个数

据。

11、while语句

While 条件循环体语句 end

12、break与continue语句

13、每一个函数文件定义一个函数。其基本格式如下:

function 输出形参表=函数名(输入形参表)

注释说明部分

函数体语句

①当输出形参多于一个时,则应用方括号括起来。

② M文件名与函数名最好一致。

③第一注释行:一般是大写的函数文件名和函数功能简要描述,供lookfor和help命

令使用。

④第一注释行及之后连续的注释行:通常是函数输入输出参数的含义及调用格式说明

等信息,构成全部在线帮助文本。

⑤与在线帮助文本相隔一空行的注释行,一般是诸如作者、修改日期、版本等信息,

用于软件档案管理。

14、return语句:用于从函数文件中返回。

15、函数调用格式:[输出实参表]=函数名(输入实参表)

16、函数调用时各实参出现的顺序、个数应与函数定义时形参的顺序、个数一致。

17、Matlab中,函数可以嵌套(和递归)调用。

18、函数参数的可调性

①在调用函数时,Matlab用两个预定义变量nargin和nargout分别记录调用该函数时

的实际输入实参和输出实参的个数。

②只要在函数文件中包含这两个变量,就可以准确知道该函数文件被调用时的输入输

出参数个数,从而决定函数如何处理。

19、局部变量:函数文件中的变量是局部变量。

20、全局变量:作用域是整个Matlab工作空间。定义格式为:global 变量名列表

①变量名列表中变量之间用空格分隔。

②在编程时,可以在所有需要调用全局变量的函数里定义全局变量。同时,为了在基

本工作空间中使用全局变量,也要定义全局变量。

③在函数文件里,全局变量的定义语句应放在变量使用之前。

④全局变量不受欢迎。

21

九、绘图

1、二维数据曲线图是将平面坐标上的数据点连接起来的平面图;坐标系可以是直角坐标系、

对数坐标系、极坐标系;数据点可以用向量或矩阵形式给出,类型可以是实数或复数。

2、plot函数

①如plot(X,Y) 绘制直角坐标系下的二维曲线,X和Y是等长向量,分别存储x坐标

和y坐标数据,它们构成一系列的点对。

②当X是向量,Y是有一维与X同维的矩阵时,则绘制多根不同颜色的曲线。曲线条数

等于Y矩阵的另一维数,X被作为这些曲线共同的横坐标。

③当X和Y是同维矩阵时,则以X、Y对应列元素为横、纵坐标分别绘制曲线,曲线条

数等于矩阵的列数。

④如plot(X) 当X为实数向量时,以该向量元素的下标为横坐标,元素值为纵坐标画

一条连续折线;当X为复数向量时,则分别以向量元素实部和虚部为横、纵坐标绘制一条曲线。

⑤当X是实数矩阵时,plot(X) 则按列绘制每列元素值相对其下标的多条曲线;当X

是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。

⑥如plot(X1,Y1,X2,Y2,…,Xn,Yn) 绘制多条曲线。其中每一组向量对(Xi,Yi)可以绘

制出一条曲线;每一组向量对的长度可以不同。配对的(Xi,Yi)也可以是矩阵对,则按它们的列元素为横、纵坐标绘制曲线。

⑦该函数一般是先取足够稠密的向量X值,然后计算函数值向量Y来绘图;取点时一

般是等间隔采样。为了提高绘制精度,可采用fplot函数,它可自适应地对函数进行采样,以更好地反映函数的变化规律。

3、plotyy函数:如plotyy(X1,Y1,X2,Y2) 其中(X1,Y1)对应一条曲线、(X2,Y2)对应一条曲

线;两者的横坐标标度相同,纵坐标有两个,左纵坐标用于(X1,Y1)数据对,右纵坐标用于(X2,Y2)数据对。

4、图形保持

①若希望在已存在的图形上再继续添加新的图形,可以使用图形保持命令hold。

② hold on/off 命令用于控制是保持原有图形还是刷新原有图形。

③不带参数的hold命令在两种状态之间进行切换。

5、设置曲线样式

④以上三种选项可组合使用。如plot(X1,Y1,’b-.’,X2,Y2,’y:d’)

⑤当选项省略时,颜色将根据曲线的先后顺序依次采用②表中给出的前7种颜色。

6、图形标注

① title函数:如title(图形名称) 用于说明图形的名称。

② xlabel函数:如xlabel(X轴说明) 用于说明X坐标轴的名称。

③ ylabel函数:如ylabel(Y轴说明) 用于说明Y坐标轴的名称。

④ text函数:如text(x,y,图形说明) 在(x,y)坐标处添加图形说明。

⑤ gtext函数:如gtext(图形说明) 执行该命令时,单击鼠标即可将文本放置在十字

光标处。

⑥ legend函数:如legend(图例1,图例2,…) 用于绘制曲线的图例,图例放置在图形

空白处,用户也可通过鼠标移动图例。

⑦除legned函数外,其他函数也适用于三维图形。

⑧上述函数中的说明文字,除使用标准的ASCII字符外,还可使用LaTeX(一种十分流

行的数学排版软件)格式的控制字符。

7、若干LaTeX格式

①受LaTeX字符串控制的部分要加大括号括起来。

② \bf、\it、\rm分别定义黑体、斜体和正体字符。如'This is {\bf Matlab}'

③如'sin({\omega}t+{\beta})'用于使用希腊字母。

④如'e^{axt}'对应的标注效果为指数形式(即上标形式)。

⑤如'x_{12}'对应的标注效果为下标形式。

8、坐标控制

①一般Matlab绘图时会自动选择合适的坐标刻度。但用户也可以重新设定坐标刻度。

② axis函数:如axis([xmin xmax ymin ymax zmin zmax]) 用于设定绘图时的坐标刻

度,若二维绘图,则只使用前4个参数。

③如axis equal 则横纵坐标采用等长刻度。

④如axis square 则产生正方形坐标系(默认为矩形)。

⑤如axis auto 则使用默认设置。

⑥如axis off/on 则取消或显示坐标轴。

⑦ grid命令:如grid on/off 用于控制画不画风格线,无参数的grid命令在两种状

态下切换。

⑧ box命令:如box on/off 用于控制加不加边框线,无参数的box命令在两种状态下

切换。

9、图形的可视化编辑:Matlab在图形窗口中提供了可视化的图形编辑工具。

10、图形窗口的分割

①有时需要在一个图形窗口内绘制若干个独立的图形,这就需要对图形窗口进行分割;

每一个绘图区可建立独立的坐标系并绘制图形;同一窗口的不同图形称为子图。

② subplot函数:如subplot(m,n,p) 将当前图形窗口分成m行n列个绘图区,区号按

行优先编号,且选定第p个区为当前活动区。

③ plot函数等绘图函数都是在当前活动区内绘制。

④切换活动区仍使用subplot(m,n,p)函数,其中的m、n值同第1次使用时的值相同,

用不同的p值来指定不同的绘图活动区。

11、fplot函数:如fplot(fname,lims,tol,选项) 其中fname是以字符串体现的函数名,

它也可以是由多个分量构成的行向量,各分行可以是函数的直接字符串,但自变量都必须是x;lims是x、y的取值范围,以行向量 [xmin,xmax]或[xmin,xmax,ymin,ymax]两种形式;tol是相对允许误差,默认值为2e-3;选项定义与plot函数相同。

12、对数坐标图形

① semilogx函数:如semilogx(X1,Y1,选项1,X2,Y2,选项2,…) 其中X轴为常用对数

刻度,Y轴仍保持线性刻度。

② semilogy函数:如semilogy(X1,Y1,选项1,X2,Y2,选项2,…) 其中Y轴为常用对数

刻度,X轴仍保持线性刻度。

③ loglog函数:如loglog(X1,Y1,选项1,X2,Y2,选项2,…) 其中X轴和Y轴均采用常

用对数刻度。

④以上函数中的选项与plot函数中的选项一样。

13、polar函数:如polar(theta,rho,选项) 用于绘制极坐标图。其中,theta是由极坐标

极角所构成的向量,rho是与theta向量对应的由极坐标矢径所构成的向量,选项与plot 函数相似。

14、二维统计分析图

① bar函数:如bar(X,Y,选项) 绘制条形图。

② stairs函数:如stairs(X,Y,选项) 绘制阶梯图。

③ stem函数:如stem(X,Y,选项) 绘制杆图。

④以上3个函数的用法与plot函数相似,只是没有多输入形式。

⑤ fill函数:如fill(X1,Y1,选项1,X2,Y2,选项2,…) 按向量元素下标渐增次序依次

用直线段连接X、Y对应元素定义的数据点,并且首尾相连,构成封闭多边形,然后将多边形内部涂满指定的颜色。

⑥ pie函数:如pie(X) 利用向量X,绘制出各元素值占总和的百分比的饼图。

⑦ compass函数:如compass(Z) 利用复数向量Z,绘制出每个复数分量的相量图。

15、隐函数绘图:即ezplot函数

①如ezplot(f) 其中f=f(x),在默认区间(-2*pi,2*pi)内绘制。

②如ezplot(f,[a,b]) 其中f=f(x),在区间(a,b)内绘制。

③如ezplot(f) 其中f=f(x,y),x、y均在默认区间(-2*pi,2*pi)内绘制。

④如ezplot(f,[xmin,xmax,ymin,ymax]) 其中f=f(x,y),x、y在参数所指定的区间内

绘制f(x,y)=0的图形。

⑤如ezplot(f,[a,b]) 其中f=f(x,y),x、y均在区间(a,b)内绘制。

⑥如ezplot(x,y) 其中x=x(t)、y=y(t),t在默认区间(0,2*pi)内绘制。

⑦如ezplot(x,y,tmin,tmax) 其中x=x(t)、y=y(t),t在指定区间内绘制。

⑧以上的f、x、y函数形式可以采用字符串的形式给出。

16、绘制三维曲线:即plot3函数

①如plot3(X1,Y1,Z1,选项1,X2,Y2,Z2,选项2,…,Xn,Yn,Zn,选项n) 与plot函数的

用法十分相似。

②图形标注时还可以使用zlabel函数,与xlabel函数相似。

17、绘制三维曲面

①方法:绘制z=f(x,y)所代表的三维曲面,先要在xy平面内设定一个矩形区域,例如

D=[a,b]*[c,d],然后将[a,b]在x轴方向分成m份,将[c,d]在y轴方向分成n份,即将区域D分成m*n个小矩形,生成代表每一个小矩形顶点坐标的平面网格坐标矩阵,最后利用有关函数求对应网格坐标的Z矩阵。

② meshgrid函数:如[X,Y]=meshgrid(x,y) 其中,x是[a,b]划分成m份后的向量,y

是[c,d]划分成n份后的向量,矩阵X的每一行都是向量x,行数等于向量y的元素个数,矩阵Y的每一列都是向量y,列数等于向量x的元素个数。因此,X和Y相同位置上的元素对恰好是区域D的网格点坐标。当x=y时,该函数可写成meshgrid(x)。

③根据矩阵X和矩阵Y所对应的每一个网格点上的坐标求函数值z,则得到函数值矩阵

Z。显然,X、Y、Z各列或各行所对应坐标对应于一条空间曲线,空间曲线的集合组成空间曲面。

④ mesh函数:如mesh(X,Y,Z,C) 用于绘制三维网格图。其中,X、Y、Z是维数相同的

矩阵,X、Y是网格坐标矩阵,Z是网格点上的高度矩阵,C用于指定在不同高度下的颜色范围(C省略时,认为C=Z,即颜色的设定正比于图形的高度);当X和Y省略时,把Z矩阵的列下标当作x轴坐标、行下标当作y轴坐标;当X和Y是向量时,要求X的长度等于Z矩阵的列,Y的长度等于Z矩阵的行,X和Y向量元素的组合构成网格点的x,y坐标。

⑤ meshc函数:用法与mesh函数相似,不同的是还在xy平面上绘制曲面在在z轴方向

的带等高线。

⑥ meshz函数:用法与mesh函数相似,不同的是还在xy平面上绘制曲面的底座。

⑦ surf函数:用法与mesh函数相似,各线条之间的补面用颜色填充。相应地也可使用

surfc函数。

18、标准三维曲面

① Matlab提供了一些函数用于绘制标准三维曲面,并可利用这些函数产生相应的绘图

数据。也常用于三维图形的演示。

② sphere函数:如[X,Y,Z]=sphere(n) 绘制圆心位于原点,半径为1的单位球体。当

有输出参数时,可产生(n+1)*(n+1)的矩阵X、Y、Z数据;又如sphere(n)可绘制出

多面体表面图,n也可省略,默认值为20。

③ cylinder函数:如[X,Y,Z]=cylinder(R,n) 绘制柱面。其中,R是一个向量,存放

柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,缺省为20。如

cylinder(3)生成一个圆柱;cylinder([10,1])生成一个圆锥。

④ peaks函数(也称多峰函数):在[-3,3]*[-3,3]的矩形区域内划分网格来确定函数值。

如[X,Y,Z]=peaks(n) 将生成n*n的输出矩阵值。

⑤也可利用以上函数所生成的数据,通过mesh或surf函数来绘制。

19、三维统计图形

① bar3函数:绘制三维条形图。如bar3(X) X的每个元素对应于一个条形;又如bar3(X,Y)

在X指定的位置上绘制Y中元素的条形图。

② stem3函数:绘制离散序列数据的三维杆图。如stem3(Z) 将数据序列Z表示为从xy

平面向上延伸的杆图;又如stem3(X,Y,Z) 在X和Y指定的位置上绘制数据序列Z

的杆图,X、Y、Z的维数必须相同。

③ pie3函数:如pie3(X) 用X向量中的数据绘制三维饼图。

④ fill3函数:如fill3(X,Y,Z,C) 在三维空间中绘制出填充过的多边形, 使用X、Y、

Z作为多边形的顶点,而C指定了填充的颜色。

20、waterfall函数:用法与效果与meshz函数相似。如waterfall(X,Y,Z) 它的网格线在

x轴方向出现,具有瀑布效果。

21、等高线图

① contour函数:绘制二维等高线图。如contour(X,Y,Z,n,选项)

② contour3函数:绘制三维等高线图。如contour3(X,Y,Z,n,选项)

③以上函数中的n参数指定高度的等级数。

22、view函数:如view(az,el) 设置视点。

①从不同视点绘制的图形形状是不一样的;视点位置可由方位角和仰角表示。

② az为方位角(又称旋转角):它是视点与三维坐标系原点连线在xy平面上投影与y

轴负方向形成的角度,正值表示逆时针,负值表示顺时针。

③ el为仰角(又称视角):它是视点与原点连线与xy平面的夹角,正值表示视点在xy

平面上方,负值表示视点在xy平面下方。

④ az和el均以度为单位。

⑤系统默认视点定义为方位角-37.5度、仰角30度。

23、色图

①颜色的RGB表示:利用3个元素的向量表示,元素在[0,1]范围内取值,如[1,0.5,0]

表示橙色。

②色图:是一个m*3的数据矩阵,它的每一行是RGB三元组。色图矩阵可人为生成,

也可利用函数来定义。色图的作用是用于对绘制的图形进行着色。

③如M=gray(m) 即生成m*3的色图矩阵M,表示的颜色是灰色由浓到淡。当参数m省

略,则m由当前绘图窗口的色图大小决定,一般默认值为64。

④定义色图矩阵的函数

⑥ colormap函数:如colormap(M)或colormap(gray) 其中,M为色图矩阵。该函数实

现图形窗口色图的设置和改变。

24、三维表面图形的着色

①三维表面图实际上就是在网格图的每一个网格片上涂上颜色。

② surf函数用默认的着色方式对网格片着色。还可用shading命令来改变着色方式。

③ shading faceted命令:将每个网格片用其高度对应的颜色进行着色,但网格线仍保

留,其颜色为黑色。该方式是默认方式。

④ shading flat命令:将每个网格片用同一个颜色进行着色,且网格线也用相应的颜

色,使表面更光滑。

⑤ shading interp命令:在网格片内采用颜色插值处理,得出的表面最光滑。

25、图形的裁剪:通过将图形中需要裁剪部分对应的函数值设置为NaN,在绘图时,函数值

为NaN的部分将不显示,从而达到对图形进行裁剪的目的。

26、图像处理

① Matlab有一个图像处理工具箱。

② imread函数:如[A,camp]=imread(fname) 读取图像的数据矩阵和色图矩阵。对于灰

度图像,则A为二维矩阵;对于彩色图像,则A为三维矩阵,第3维存储颜色数据。

③ imwrite函数:如imwrite(A,fname,fmt) 其中,fmt为图像文件格式,如bmp、jpg、

gif等。

④ image函数和imagesc函数:如image(A) 用于图像的显示。为了保证图像的显示效

果,一般还应使用colormap(camp)设置图像色图。

27、动画

① getframe函数:返回当前绘图窗口的一个快照(即当前坐标轴值),也称为一帧。

② moviein函数:如M=moviein(n) 建立一个足够大的n列矩阵M,该矩阵用来保存n

幅帧的数据,以备播放。之所以要事先建立一个大矩阵,是为了提高程序运行速度。

③ movie函数:如movie(M,n) 即播放由矩阵M所定义的画面n次,默认时播放1次。

④ M矩阵值的获得:可通过M(:,k)=getframe获得(k可以是一个循环变量)

28、质点轨迹动画

①质点在二维平面或三维空间的运动轨迹曲线也称为彗星轨迹曲线。

② comet函数与comet3函数:如comet(X,Y,p)、comet3(X,Y,Z,p)

③ X、Y、Z为曲线的坐标参数。两者的用法与plot和plot3函数相同。

④ p用于设置彗星长度的参数,默认值为0.1。(可省略不用)

十、数据分析

1、最大值(max函数)和最小值(min函数)

①如y=max(V) 返回向量V的最大值;若V中包含复数,则按模取最大值。

②如[y,l]=max(V) 返回向量V的最大值存入y,最大值的序号存入l。

③如Y=max(A) A为矩阵,返回一个行向量,向量的第i个元素是矩阵A的第i列的最

大值。

④如[Y,U]=max(A) U向量记录每列最大值的序号。

⑤如max(A,[],dim) 其中dim取1或2。取1时与max(A)完全相同;取2时返回一个

列向量,记录矩阵A每行上的最大值与对应的序号。

⑥如U=max(A,B) A、B是两个同型的向量或矩阵,结果U是与A、B同型的向量或矩阵,

U的每个元素等于A、B对应元素的较大者。

⑦如U=max(A,n) n是一个标量,结果U是与A 型的向量或矩阵,U的每个元素等于A

对应元素和n中的较大者。

⑧ min函数的用法与max完全相同。

2、求和(sum函数)与求积(prod函数)

① sum(V) 返回向量V各元素的和。

② prod(V) 返回向量V各元素的积。

③ sum(A) A为矩阵,返回一个行向量,其第i个元素是A的第i列的元素和。

④ prod(A) A为矩阵,返回一个行向量,其第i个元素是A的第i列的元素乘积。

⑤ sum(A,dim) 当dim为1时,等同于sum(A);当dim为2时,返回一个列向量,其第

i个元素是A的第i行的各元素之和。

⑥ prod(A,dim) 当dim为1时,等同于prod(A);当dim为2时,返回一个列向量,其

第i个元素是A的第i行的各元素之乘积。

3、平均值(mean函数)和中值(median函数):两者的用法与sum函数完全一致。

4、累加和(cumsum函数)与累乘积(cumprod函数)

①累加和:若已知数据序列x1,x2,…,xn,则经累加和计算后的结果序列为

y1,y2,...,yn,其中yi=x1+x2+ (xi)

②累乘积:与累加和类似,yi=x1*x2* (xi)

③如V=cumsum(X) 返回向量X的累加和向量。

④如V=cumprod(X) 返回向量X的累乘积向量。

⑤如M=cumsum(A) 返回一个矩阵,其第i列是A的第i列的累加和向量。

⑥如M=cumprod(A) 返回一个矩阵,其第i列是A的第i列的累乘积向量。

⑦如M=cumsum(A,dim) 当dim为1时,等同于cumsum(A);当dim为2时,返回一个

矩阵,其第i行是A的第i行的累加和向量。

⑧如M=cumprod(A,dim) 当dim为1时,等同于cumprod(A);当dim为2时,返回一

个矩阵,其第i行是A的第i行的累乘积向量。

5、标准方差(std函数)与相关系数(corrcoef函数)

①如Y=std(A,flag,dim) A为向量时,返回一个数,即向量的标准方差;当A为矩阵

时,返回一个向量,该向量与dim的含义同上;当flag为0时,按求和后除以(n-1)再开方来计算标准方差;当flag为1时,按求和后除以n再开方来计算标准方差。

默认flag为0、dim为1。

②如M=corrcoef(X) 返回从矩阵X形成的一个相关系数矩阵。M矩阵与X同维。它把X

的每一列作为变量,然后求它们的相关系数。

③如M=corrcoef(X,Y) 其中X、Y为向量,等同于corrcoef([X,y])。

6、排序(sort函数):

①如V=sort(X) 返回一个对向量X中的元素按升序排列的新向量。

②如[Y,I]=sort(A,dim,mode) A为矩阵,dim指明对列还是行进行排序,mode取字符

串ascend按升序(默认)、取字符串descend为降序。结果中的Y矩阵是排好序的结果,I矩阵记录Y中的元素在A中的位置。

7、一维数据插值(interp1函数)

①如Y1=interp1(X,Y,X1,method) 其中,X、Y是两个等长的已知向量,分别存储采样

点和样本点;X1是一个向量或标量,存储欲插值的点;Y1是一个与X1等长的插值结果;字符串参数method是采用的插值方法。

② method取linear:线性插值(默认方法)。

③ method取nearest:最近点插值。

④ method取cubic:3次多项式插值。

⑤ method取spline:3次样条插值。

⑥ X1的取值不能超出X给定的范围,否则会给出NaN错误。

⑦ spline函数:如Y1=spline(X,Y,X1) 即3次样条插值,与interp1在method取值

为spline时完全一样。

8、二维数据插值(interp2函数)

①如Z1=interp2(X,Y,Z,X1,Y1,method)

②其中,X、Y是两个向量,分别存储两个参数的采样点,Z是与参数采样点对应的函

数值;X1、Y1是两个向量或标量,存储欲插值的点;Z1存储插值结果。

③ method的取值与interp1函数一样。同时,X1、Y1的取值不能超范围。

9、n维数据插值(interpn函数)

10、曲线拟合(polyfit函数)

①采用最小二乘法进行曲线拟合,实际上是求一个多项式的系数向量。

②如[P,S]=polyfit(X,Y,m) 函数根据采样点X和采样点函数值Y,产生一个m次多项

式P及其在采样点的误差向量S。要求X、Y是两个等长向量、m的大小不能超过采样点的个数。P的长度为m+1。

11、一维离散傅里叶变换(fft函数与ifft函数)

①如fft(X) 返回向量X的离散傅里叶变换。设X的长度为N,若N为2的幂次,则为

以2为基数的快速傅里叶变换,否则为运算速度很慢的非2幂次的算法。对于矩阵X则应用于矩阵的每一列。

②如fft(X,N) 计算N点离散傅里叶变换。若X的长度小于N,则不足部分补零;若大

于N,则删去超出N的那些元素。对于矩阵X,它同样应于矩阵的每一列。

③如fft(X,[],dim)或fft(X,N,dim) 对于矩阵而言,前者的功能与fft(X)基本相同,

后者与fft(X,N)基本相同。当dim为1时,该函数作用于X的每一列,当dim为2时,则作用于X的每一行。

④当样本数N不是2的幂次时,可以取一个大于N且是2的幂次的值进行计算,则便

可进行快速变换。

⑤ ifft函数:求一维离散傅里叶逆变换,用法与fft相似。

12、多项式计算(多项式以系数向量的方式表示)

①加减法:即向量的加减法,但两者的次数不同时,应该将低次多项式对应的向量高

次项用0补足。

② conv函数:如P=conv(P1,P2) 求多项式P1和P2的乘积。

③ deconv函数:如[Q,R]=deconv(P1,P2) 求多项式P1和P2的除法。其中Q返回P1

除以P2的商式,R返回余式。Q和R仍是多项式的系数向量。

④ polyder函数:如p=polyder(P) 求P的导函数;如p=polyder(P,Q) 求P*Q的导函

数;如[p,q]=polyder(P,Q) 求P/Q的导函数,结果的分子存入p,分母存入q。

⑤ polyval函数:如Y=polyval(P,x) 求代数多项式的值。若x为一数值,则求多项式

在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值。

⑥ polyvalm函数:如Y=polyvalm(P,A) 其中P为多项式,A为方阵,该函数以A为自

变量求多项式的值。

⑦ roots函数:如X=roots(P) 多项式求根。n次多项式有n个根,X为根的向量。

⑧ poly函数:如P=poly(X) X为向量,返回以X为其根的多项式,其系数赋给P。

十一、解方程与最优化问题求解

1、利用直接法求解线性方程组

① X=A\B 即利用左除对方程组AX=B的求解。

②系统会根据系数矩阵选用高斯消元法、主元素消元法、平方根法或追赶法。

③若B为列向量,则可获得方程组的数值解。

④若B为N*M的矩阵,则可同时获得与系数矩阵A相同的M个线性方程给的数值解。

⑤若A是奇异的或接近奇异的,则会给出警告。

⑥若A不是方阵,将会在最小二乘意义下求解。

⑦也可利用矩阵A的逆求解,即x=inv(A)*B。

2、利用矩阵分解法求解线性方程组

①矩阵分解是将一个矩阵分解成若干个矩阵的乘积。

②常见分解有LU分解、QR分解、Cholesky分解、Schur分解、Hessenberg分解和奇

异分解等。

③通过分解法求解线性方程组的优点是运算速度快,节省存储空间。

④ lu函数:即矩阵的LU分解。如[L,U]=lu(A) A为方阵,产生一个上三角矩阵U和一

个变换形式的矩阵L,满足A=LU。又如[L,U,P]=lu(A) A为方阵,产生一个上三角矩阵U和一个下三角矩阵L以及一个置换矩阵P,满足PA=LU。此时,求解方程组AX=B,则X=U\(L\B)或X=U\(L\P*B)。

⑤ qr函数:即矩阵的QR分解。如[Q,R]=qr(A) 产生一个正交矩阵Q和一个上三角矩阵

R,满足A=QR。又如[Q,R,E]=qr(A) 产生一个正交矩阵Q、一个上三角矩阵R及一个置换矩阵E,满足XE=QR。此时,求解方程组AX=B,则X=R\(Q\B)或X=E*(R\(Q\B))。

⑥ chol函数:即矩阵的Cholesky分解。如R=chol(A) 产生一个上三角矩阵R,满足

R'R=A,若A为非对称正定,则出错。又如[R,p]=chol(A) 不输出出错信息。若A为对称正定,则p=0,否则p为一个正整数。如A为满秩矩阵,则R为一个阶数为q=p-1的上三角矩阵,且满足R’R=A(1:q,1:q)。此时,求解方程组AX=B,则X=R\(R’\B)。

3、利用迭代法求解线性方程组

①迭代法适用于求解大型系数矩阵的方程组。

②迭代法主要包括Jacobi迭代法、Gauss-Serdel迭代法、超松弛迭代法和两步迭代法。

③ jacobi函数:即Jacobi迭代法。如[Y,n]=Jacobi(A,B,X0,ep) 其中X0为初值向量,

ep为迭代精度,如取1.0e-6,Y为所求解向量,n为计算的实际迭代次数。

④ gauseidel函数:即Gauss-Serdel迭代法。如[Y,n]=gauseidel(A,B,X0,ep)。一般

地,该方法比Jacobi迭代法快,但某些情况下,Jacobi收敛,而该方法不收敛。

4、 fzero函数:如z=fzero(@fname,x0,tol,trace) 用来求单变量非线性方程的根。

① fname是待求根的函数文件名。在该M文件中一般应允许向量作为输入参数,故采用

点运算。

② x0为搜索的起点,该函数只给出离x0最近的一个根(方程可能有多个根)。

③ tol控制结果精度,默认tol=eps。

④ trace为1时显示迭代信息,为0不显示,默认值为0。

⑤非线性方程求根常见的有牛顿迭代法、弦截法、二分法等。

⑥若待求根的函数不是函数文件名时,该函数需要以字符串的方式给出,且其中的变

量只能是x。

⑦ inline函数(内联函数):f=inline(函数表达式的字符串) 如f=inline('x-10.^x+2')

此时,可用f替代@fname参数,而不必编写函数的M文件。

5、fsolve函数:如X=fsolve(@fname,X0,options) 求非线性方程组的数值解。

①需要用到Matlab优化工具箱。

② fname是用于定义需求解的非线性方程组的函数文件名。

③ X0是求解过程的初值向量,一般以列向量给出。

④ options用于设置优化工具箱的优化参数。

⑤ optimset命令:显示出全部的优化参数。若需要得到某个优化函数(如fsolve函数)

当前的默认参数值,则可使用optimset fsolve命令。

⑥ optimset函数:设置优化参数。如options=optimset('Display','off') 将优化参

数的Display选项的值设置为off。这里的options即可用在fsolve函数中。

6、常微分方程初值问题的数值解法

①一般只有对一些典型的常微分方程,才能求出它们的一般解表达式并用初始条件确

定表达式中的任意常数。

②实际问题中遇到的常微分方程在许多情况下得不出一般解,所以,一般是要求获得

解在若干个点上的近似值。

③一般格式:[t,y]=solver(@fname,tspan,y0) 其中,t和y分别给出时间向量和相应

的状态向量;fname是定义f(t,y)的函数文件名,该函数文件必须返回一个列向量;

tspan形式为[t0,tf],表示求解区间;y0是初始状态列向量。

④求常微分方程数值解的函数

⑤选取方法时,可考虑精度要求和复杂度控制要求。

⑥刚性:若微分方程描述的一个变化过程包含着多个相互作用但变化速度相差十分悬

殊的子过程,这样一类过程认为具有“刚性”,这类方程具有非常分散的特征值。

⑦函数ode23和ode45是对一阶常微分方程组设计的,因此对高阶常微分方程,需行

将它转化为一阶常微分方程组,即状态方程。

7、无约束最优化问题求解

① fminbnd函数:如[x,fval]=fminbnd(@fname,x1,x2,options) 求一元函数在(x1,x2)

区间中的极小值点x和最小值fval。

② fminsearch函数:如[x,fval]=fminsearch(@fname,x0,options) 基于单纯形算法求

多元函数极小值点x和最小值fval。

③ fminunc函数:如[x,fval]=fminunc(@fname,x0,options) 基于拟牛顿法求多元函数

极小值点x和最小值fval。

④这里的函数只是求局域极值。

⑤其中,fname是定义目标函数的M文件名;x0是一个向量,表示极值点的初值;options

为优化参数。

⑥当目标函数的阶数大于2时,使用fminunc比fminsearch更有效,但当目标函数高

度不连续时,使用fminsearch效果较好。

⑦求f(x)的最大值,即求-f(x)的最小值。

8、有约束最优化问题求解

①即求在G(x)<=0下的函数极小值问题。

②约束条件还可细化为下以几种形式:

③线性不等式约束:Ax<=b

④线性等式约束:Aeqx=beq

⑤非线性不等式约束:Cx<0

⑥非线性等式约束:Ceqx=0

⑦ x的下界和上界:Lbnd<=x<=Ubnd

⑧ fmincon函数[x,fval]=fmincon(@fname,x0,A,b,Aeq,beq,Lbnd,Ubnd,NonF,options)

其中,x、fval、fname、x0和options的含义同上。其余参数为约束条件,参数NonF

为非线性约束函数的M文件名。如果某个约束不存在,则用空矩阵来表示。

9、线性规划问题求解

①线性规划:即求在线性约束条件下线性目标函数的极小值问题。

②线性约束:Ax<=b、Aeqx=beq、Lbnd<=x<=Ubnd

③ linprog函数:如[x,fval]=linprog(f,A,b,Aeq,beq,Lnd,Ubnd) 其中,x是最优解,

fval是目标函数的最优值。x、b、beq、Lbnd、Ubnd是向量,A、Aeq为矩阵,f为

目标函数系数向量。

十二、数值积分与数值微分

1、变步长辛普生数值积分法

① quad函数:如[I,n]=quad(@fname,a,b,tol,trace)

② quadl函数:如[I,n]=quadl(@fname,a,b,tol,trace)

③其中,fname是被积函数名,a和b分别是定积分的下限和上限,tol用来控制积分

精度,trace控制是否展现积分过程,取值同上。返回参数I即定积分值,n为被积

函数的调用次数。

④一般quadl函数的精度和效率要高于quad函数。

⑤积分上、下限也可以是复数,则在复平面上求积分。

2、高斯-克朗罗德数据积分法

① quadgk函数:如[I,err]=quadgk(@fname,a,b) 求振荡函数的定积分。

②积分上、下限可以是-inf或inf。

3、梯形数值积分法

① trapz函数:如I=trapz(X,Y) 其中,X、Y是两个等长的向量,分别存放一组样本点

和样本值,要求X向量中的元素值由小到大递增。

②当被积函数关系不知道,只有一组(x,y)的样本点和样本值,此时,可以利用该函数

求其定积分。积分区间为[x1,xn],即X向量的第一个元素与最后一个元素。

4、多重定积分的数值求解

① dblquad函数:如I=dblquad(@fname,a,b,c,d,tol) 求两重定积分,其中[a,b]为x

的积分区域,[c,d]为y的积分区域。

② triplequad函数:如I=triplequad(@fname,a,b,c,d,e,f,tol) 求三重定积分,其

中[e,f]为z的积分区域。

5、数值微分

①数值分析关心函数f(x)的导数g(x)在一串离散点(以X向量体现)的近似值G(X)

以及误差。

②定义:f(x+h)-f(x)为向前差分;f(x)-f(x-h)为向后差分;f(x+h/2)-f(x-h/2)为中

心差分;它们分别除上h后则分别称为向前差商、向后差商和中心差商。当h充分小时,差商即为导数值。

③数值微分方法1:用多项式或样条函数g(x)对f(x)进行逼近(插值或拟合),然后用

g(x)在点x处的导数(即多项式的导数)作为f(x)在点x处的导数。

④数值微分方法2:用f(x)在点x处的某种差商作为其导数。

6、diff函数(即向前差分)

①如DX=diff(X) 计算向量X的向前差分,即DX(i)=X(i+1)-X(i),DX结果元素比X

少一个。

②如DX=diff(X,n) 计算向量X的n阶向前差分,即diff(X,2)=diff(diff(X))。

③如DX=diff(A,n,dim) 计算矩阵A的n阶差分,n默认为1,dim为1(默认)按列计

算,dim为2时按行计算。

十三、符号运算

1、符号对象的建立

① sym函数:格式:符号变量名=sym(符号字符串) 如a=sym('a') 符号字符串可以是

常量、变量、函数或表达式。该函数与可以将数值表达式变换成它的符号表达式,如sym(1.5)。

② syms函数:syms 符号变量名1 符号变量名2 …符号变量名n (只能用空格分

隔)

③利用字符串生成符号表达式:如y='1/sqrt(2*x)'

2、符号表达式的四则运算:用+、-、*、/、^ 实现,结果仍是一个符号表达式,但不时并

不是最简形式。

3、numden函数:如[n,d]=numden(s) 提取符号表达式s的分子和分母,分别存放在n与d

中。提取之前会将表达式有理化。若s是符号矩阵,则n和d分别为分子和分母矩阵。

4、factor函数:如factor(s) 对符号表达式s进行分解因式。

5、expand函数:如expand(s) 对符号表达式s进行展开。

6、collect函数:如collect(s)或collect(s,V) 对符号表达式s按变量V合并同类项。

7、coeffs函数:如coeffs(s)或coeffs(s,x) s为多项式表达式,按x主变量提取多项式

系数,若没有指定变量,则按离x就近原则确定主变量。

8、simplify函数:如simplify(s) 应用函数规则对s进行化简。

9、simple函数:如simple(s) 试用几种不同的化简工具,然后选择在结果表达式中含有最

小字符的那种形式。

10、eval函数:如eval(s) 将符号表达式变换成数值表达式。

11、sym2poly函数:如U=sym2poly(s) 将符号多项式转换为多项式系数向量。

12、poly2sym函数:如s=poly2sym(U,y) 将多项式系数向量转换为符号多项式。其中,y

是指定的自变量,默认为x。

13、符号表达式中变量的确定

① findsym函数与symvar函数:如findsym(s[,n])、symvar(s[,n]) 两者返回符号表

达式s中的n个符号变量,若没有指定n,则返回s中的全部符号变量。前者以字符串形式返回结果,后者以向量形式返回结果。

②在求函数的极限、导数和积分时,若没有明确指定自变量,将按以下原则确定主变

量:寻找除i、j之外,在字母顺序上最接过x的小写字符,若表达式中有两个符号变量与x的距离相等,则ASCII大者优先。

③可用findsym(s,1)或symvar(s,1)查找表达式s的主变量。

14、符号矩阵

①也是一种符号表达式。

②符号表达式运算分别作用于矩阵的每一个元素。

③符号矩阵也可以进行有关的矩阵运算。

④求符号矩阵的转置需要使用点运算符,即A.'

15、符号极限(limit函数)

①如limit(f,x,a) 求符号函数f(x)在x趋近于a时的极限值。

②如limit(f,a) 求默认自变量趋近于a时的极限值。

③如limit(f) 求默认自变量趋近于0时的极限值。

④如limit(f,x,a,'right'):求右极限值。

⑤如limit(f,x,a,'left'):求右极限值。

16、符号导数(diff函数)

①如diff(s) 按默认变量对符号表达式s求一阶导数。

②如diff(s,'v') 以v为自变量,对符号表达式求一阶导数。若v是符号变量,则无

需单撇号。利用它也可以求偏导数。

③如diff(s,n) 按默认变量对符号表达式求n阶导数。

④如diff(s,'v',n) 以v为自变量求n阶导数。

17、符号积分(int函数)

①如int(s) 按默认变量对被积函数或符号表达式s求不定积分。

②如int(s,v) 以v为自变量,求不定积分。

③如int(s,v,a,b) 求定积分,a、b为定积分的下限和上限,它们可以是具体的数,

也可以是一个符号表达式,还可以是无穷(inf)。当被积函数在闭区间[a,b]上可积时,函数返回一个定积分结果。当a、b有一个是无穷时,函数返回一个广义积分。

18、级数

①前面的sum函数可以求以向量形式表示的有限级数的求和。

② symsum函数:如symsum(s,v,n,m) 求(无穷)级数的和。其中,s表示一个级数的

通项,是一个符号表达式;v是求和变量(可省略);n和m是求和的开始项和末项,末项可以是inf。

③ taylor函数:如taylor(f,v,n,a) 将函数f按变量v展开为泰勒级数,展开到第n

项(即变量v的n-1次幂)为止,n的默认值为6;v可省略;参数a指定在自变量v=a处展开,a的默认值为0。

19、符号代数方程求解(solve函数)

MATLAB实验报告

MATLAB程序设计语言 实 验 报 告 专业及班级:电子信息工程 姓名:王伟 学号:1107050322 日期 2013年6月20日

实验一 MATLAB 的基本使用 【一】 实验目的 1.了解MATALB 程序设计语言的基本特点,熟悉MATLAB 软件的运行环境; 2.掌握变量、函数等有关概念,掌握M 文件的创建、保存、打开的方法,初步具备将一般数学问题转化为对应计算机模型处理的能力; 3.掌握二维图形绘制的方法,并能用这些方法实现计算结果的可视化。 【二】 MATLAB 的基础知识 通过本课程的学习,应基本掌握以下的基础知识: 一. MATLAB 简介 二. MATLAB 的启动和退出 三. MATLAB 使用界面简介 四. 帮助信息的获取 五. MATLAB 的数值计算功能 六. 程序流程控制 七. M 文件 八. 函数文件 九. MATLAB 的可视化 【三】上机练习 1. 仔细预习第二部分内容,关于MATLAB 的基础知识。 2. 熟悉MATLAB 环境,将第二部分所有的例子在计算机上练习一遍 3. 已知矩阵???? ??????=??????????=123456789,987654321B A 。求A*B ,A .* B ,比较二者结果是否相同。并利用MATLAB 的内部函数求矩阵A 的大小、元素和、长度以 及最大值。 程序代码: >> A=[1 2 3;4 5 6;7 8 9]; >> B=[9 8 7;6 5 4;3 2 1]; >> A*B ans =

30 24 18 84 69 54 138 114 90 >> A.*B ans = 9 16 21 24 25 24 21 16 9 两者结果不同 >> [m,n]=size(A) m = 3 n = 3 >> b=sum(A) b = 12 15 18 >> a=length(A) a = 3 >>max(A) ans =

使用Matlab需要掌握的一些知识点

1.滤波:medfilt1,smooth,filter,无法解决数据NAN污染周边数据 2.aa([1,3],:) = aa([3,1],:); 可以交换行与行之间的数据 3.用一下整体乘法,提高计算效率 4.2019.10.4纠错:程序进入循环出不来,原因是小循环中的条件计算程 序参数与大循环参数冲突 5.[SNR,I] = min(Data_Ze,[],1,'omitnan'); %排除每一列中的NAN, 求每一列中的最小值,SNR为每列的最小值,I为每列最小值的下标 6.ncdisp()可以充分地体现nc文件的方方面面的信息 7.命令行窗口显示信息: X = ['仰角',num2str(elevtation_number), '下的ML总点数:']; % 命令窗口要显示的信息 disp(X); 8.弹出提示框显示信息 msgbox('中间数据图像显示完毕!','温馨提示','modal'); errordlg('参数超出范围或者参数输入不足,请重新配置!', 'Warning'); 9.在图中标记数据 str=[ num2str(r') 'km']; 显示的文本 text(x,y,cellstr(str)); (x,y)要显示的位置 10.标记图中线条内容 l = legend('温度廓线','露点温度廓线'); %标注线条代表内容 title(l,'线条表示内容'); %线条标题 11.matlab求和取均值以及计算标准差的时 数据有nan使用下面三个特定的函数(nansum,nanmean,nanstd)12.Matlab 简化运算 ZH_Data1=mod((ZH_Data0+33)*2,256)*0.5-33; ZH_Data1(ZH_Data1==-33)=NaN; ZH_Data=ZH_Data1(1:1192,:,1); 13.完成仰角方位距离三维元素位置的转换 permute(ZH_data,[3,2,1]); 14.shading阴影函数 控制曲面和图形对象的颜色着色,即用来处理色彩效果的,包括以下三种形式: shading faceted:默认模式,在曲面或图形对象上叠加黑色的网格线; shading flat:是在shading faceted的基础上去掉图上的网格线;

MATLAB实验报告实验二

实验二 MATLAB矩阵及其运算 学号:3121003104 姓名:刘艳琳专业:电子信息工程1班日期:2014.9.20 一实验目的 1、掌握Matlab数据对象的特点以及数据的运算规则。 2、掌握Matlab中建立矩阵的方法以及矩阵处理的方法。 3、掌握Matlab分析的方法。 二实验环境 PC_Windows 7旗舰版、MATLAB 7.10 三实验内容 4、1. (1)新建一个.m文件,验证书本第15页例2-1; (2)用命令方式查看和保存代码中的所有变量;

(3)用命令方式删除所有变量; (4)用命令方式载入变量z。 2. 将x=[4/3 1.2345e-6]在以下格式符下输出:短格式、短格式e方式、长格式、长格式e方式、银行格式、十六进制格式、+格式。 短格式 短格式e 长格式

长格式e方式 银行格式 十六进制格式 3.计算下列表达式的值 (1)w=sqrt(2)*(1+0.34245*10^(-6)) (2)x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/(tan(b+c)+a) a=3.5;b=5;c=-9.8; (3)y=2*pi*a^2*((1-pi/4)*b-(0.8333-pi/4)*a) a=3.32;b=-7.9; (4)z=0.5*exp(2*t)*log(t+sqrt(1+t*t)) t=[2,1-3i;5,-0.65];

4. 已知A=[1 2 3 4 5 ;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20],对其进行如下操作:(1)输出A在[ 7, 10]范围内的全部元素; (2)取出A的第2,4行和第1,3,5列; (3)对矩阵A变换成向量B,B=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]; (4)删除A的第2,3,4行元素; (1) (2)

MATLAB复习知识点汇总

MATLAB 复习 1、实现符号函数 运算功能的函数m 文件为: function y=sgn(x) if x<0 y1=-1; elseif x==0 y1=0; else y1=1; end y=y1; 2、求满足1+2+3+…n<100的最大正整数n 的MATLAB 程序为: sum=0;n=0; while sum<100 n=n+1; sum=sum+n; end 1,0,sgn()0,0, 1,0x y x x x >?? ===??-

sum=sum-n; n=n-1; n,sum 3、m文件有两种形式,一种称为命令文件(Script File),另一种称为函数文件(Function File),两种文件的扩展名都是m。 4、反馈控制系统品质要求:稳定性、准确性、快速性 5、按不同系统的特征方程式,可将自动控制系统分为线性系统和非线性系统。 6、MATLAB控制相关的工具箱 (1)控制系统工具箱 (2)系统辨识工具箱 (3)模型预测控制工具箱 (4)鲁棒控制工具箱 (5)神经网络工具箱 7、MATLAB系统的构成 (1)开发环境(2)数学函数库(3)MATLAB语言(4)图形处理系统(5)应用程序接口 8、常用工具箱 (1)控制类工具箱(2)应用数学类工具箱(3)信号处理类工具箱(4)其他常用工具箱 9、MATLAB语句形式:>>变量=表达式 10、MATLAB常用命令 quit 关闭MATLAB

exit 关闭MATLAB clc 清除MATLAB 命令窗口中的所有显示内容 clear 清除工作空间中保存的所有变量 11、MATLAB 基本数据类型:双精度数组、字符串数组、元胞数组、结构数组 12、矩阵的创建 (1)直接输入法(2)通过数据文件创建矩阵(3)通过m 文件创建矩阵(4)通过函数创建矩阵(5)冒号法 13、冒号法 [1]冒号法构造向量 冒号表达式的一般格式为:向量名=初值:步长:终值 [2]冒号法构造矩阵 一般格式为: A(:,j ):表示矩阵A 的第j 列; A(i ,:):表示矩阵A 的第i 行。 A(i,j)表示取矩阵A 的第i 行第j 列交叉位置的元素 14、矩阵的运算 /(矩阵的右除)或\(矩阵的左除) A -1=inv(A) 矩阵的逆 15、求下面方程组的根 1231231 2323532255316 x x x x x x x x x +-=?? -+=??--=?

MATLAB全实验报告

《数学实验》报告 实验名称 Matlab 基础知识 学院 专业班级 姓名 学号 2014年 6月

一、【实验目的】 1.认识熟悉Matlab这一软件,并在此基础上学会基本操作。 2.掌握Matlab基本操作和常用命令。 3.了解Matlab常用函数,运算符和表达式。 4.掌握Matlab工作方式和M文件的相关知识。 5.学会Matlab中矩阵和数组的运算。 二、【实验任务】 P16 第4题 编写函数文件,计算 1! n k k = ∑,并求出当k=20时表达式的值。P27第2题 矩阵A= 123 456 789 ?? ?? ?? ?? ?? ,B= 468 556 322 ?? ?? ?? ?? ?? ,计算A*B,A.*B,并比较两者的区别。 P27第3题 已知矩阵A= 52 91 ?? ?? ?? ,B= 12 92 ?? ?? ?? ,做简单的关系运算A>B,A==B,AB)。 P34 第1题 用 111 1 4357 π =-+-+……公式求π的近似值,直到某一项的绝对值小于-6 10为止。 三、【实验程序】 P16 第4题 function sum=jiecheng(n) sum=0; y=1; for k=1:n for i=1:k y=y*i; end sum=sum+y; end sum P27第2题 >>A=[1 2 3;4 5 6;7 8 9] >>B=[4 6 8;5 5 6;3 2 2] >>A*B

P27第3题 >> A=[5 2;9 1];B=[1 2;9 2]; >>A>B >>A==B >>A> (A==B)&(A> (A==B)&(A>B) P34 第1题 t=1; pi=0; n=1; s=1; while abs(t)>=1e-6 pi=pi+t; n=n+2; s=-s; t=s/n; end pi=4*pi; 四、【实验结果】 P16 第4题 P27第2题

MATLAB学习知识重点

1,计算矩阵的特征值和特征向量 【V,D 】=eig (A ) 其中A 指的是矩阵 V 指的是特征向量组成的矩阵 D 指的是特征值所组成的矩阵 A=[0 1 0;1 0 1;0 1 0]; >> [V,D]=eig(A) V = 0.5000 -0.7071 0.5000 -0.7071 0.0000 0.7071 0.5000 0.7071 0.5000 D = -1.4142 0 0 0 -0.0000 0 0 0 1.4142 2,求线性方程的解 1231231232314354578950x x x x x x x x x ++=-+=++= 这是一个非齐次方程方程,对于线性代数来讲,很难求解,但是利用MATLAB 来求 A=[1 2 3;3 -5 4;7 8 9]; 1 B=[14 5 50]; 2 x=A\B 3 B=[14;5;50]; 4 这4个语句的区别,特别是2.3两句的区别,2语句中B 表示的是1行3列,但是4语句中的表示的3行1列。 同时,X=A\B 很X=A/B 也是很有能区别的,具体的区别如下: X=A\B 表示的是A*X=B 的解 X=A/B 表示的是X*A=B 的解,在这里,具体解释如下;A*X=B ,

在线性代数中,X=A^(-1)B ,所以X=A\B。X*A=B的解为X=BA^(-1),就是X=B/A。 3,一元方程求根 这个在计算中是个难题,一元多次方程式很难求解的,对于纯粹的手工计算来说,所以有MATLAB比较方便,具体语句如下:()23 1.350.6680.4360.69552 =+++ f x x x x P=[0.69552 0.436 0.668 1.35]; >> X=roots(P) X = 0.2817 + 1.2456i 0.2817 - 1.2456i -1.1902 + 0.0000i 对于这个方程来说,要注意的是,在构成向量时,一定要从告辞往低次排列,中间缺少次数的,用0代替,求解语句是roots(P)。4,图形处理功能 A, 可以绘制函数图像,具体的语句如下: >> x=linspace(0,6); 这个表示X轴,在0到6内取100个点,这是默认的数值100。当然还有可以设定数值的方法linspace(0,6,100)表示的是在0到6内取等间隔取100个点。 >> y1=sin(2.*x); >> plot(x,y1)这是绘制函数sin(2X)的图像,在这里要注意的,

matlab学习心得体会(精选3篇)

matlab学习心得体会(精选3篇) matlab学习心得体会一:matlab学习心得matlab中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。他提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。matlab内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。 本学期通过对matlab的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了matlab的实用方法。通过理论课的讲解与实验课的操作,使我在短时间内学会使用matlab,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。 matlab是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。 matlab学习心得体会二:matlab学习心得(463字) 学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比c语言简单。但是深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数,也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根本不会什么实验。 学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。其中电场分布是无法用函数表达式表示。我知道计算机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但是在这方面没有提到相关信息。 总之,这个软件功能强大,不知什么时候国内才有类似的软件。 matlab学习心得体会三:学习matlab的心得(817字) 这是我在学习的过程中的一些技巧,或许对你有帮助,可能字数不你能满足你的要求,但是绝对是精华。

中国科学院大学_张敏洪_matlab知识点整理_第二章MATLAB 语言程序设计基础

第二章MATLAB 语言程序设计基础 ——MATLAB 通用命令-3 ——MATLAB 的保留常量,运算符号-10 ——符号变量声明syms var_list var_props-14 ——符号型数值可采用变精度函数求值vpa(A), 或vpa (A,n)-15 ——冒号表达式v=s1:s2:s3该函数生成一个行向量v,其中s1是起始值,s2是步长(若省略步长为1),s3是最大值-18 ——子矩阵提取B=A(v1,v2) v1、v2分别表示提取行(列)号构成的向量。(逗号)-20 ——矩阵翻转-25 ——数学运算符号及标点符号,乘除法,左除右除,乘方-27 ——矩阵的逻辑运算-35 ——矩阵的比较运算>, >=, <, <=, ==,~=, find(), all(), any() -36 ——解析结果的化简与变换s1=simple(s) collect( ) 合并同类项 expand( ) 展开多项式 factor( ) 因式分解 numden( ) 提取多项式的分子和分母 sincos( ) 三角函数的化简-38 ——变量替换-41 ——基本数论运算---下取整、上取整、四舍五入、离0近方向取整、最简有理数、求模的余数、最大公约数、最小公倍数、质因数分解、判定是否为质数-42 ——2.4 MATLAB 语言流程控制-47 ——nargin,nargout 分别表示输入和返回变量的实际个数 varargin, varargout 输入、输出变量列表(可变输入输出个数) ——2.5.2 可变输入输出个数conv( ) 可以计算两个多项式的积-65 ——2.6 二维图形绘制-68 ——图形元素属性获取与修改-74 ——2.6.2 其他二维图形绘制语句-76 ——2.6.3 隐函数绘制及应用-80 ——2.7.1 三维曲线绘制-81 ——2.7.2 三维曲面绘制-83

MATLAB实训小结

实训小结 为期一周的MATLAB实训在学习与忙碌中度过了,时间虽短,但我们却真真切切的学到了知识,在现实工作中可以运用的知识。 在第一节课,我们便了解到MATLAB是世界上最流行的、应用最广泛的工程计算和仿真软件,它将计算、可视化和编程等功能同时集于一个易于开发的环境。MATLAB主要应用于数学计算、系统建模与仿真、数学分析与可视化、科学与工程绘图和用户界面设计等。对MATLAB的系统结构和特点等,老师也向我们做出了大致的讲解,同时,我们知道了MATLAB程序的一些最基本的应用和运算,并能够进行一些简单的编程。就这样,实训的第一天大家都在期待和兴奋中度过。 接下来的时间,主要是以大家自学和练习为主,老师进行辅导和考察。在学习过程中,不懂的可以相互之间小声的讨论,也可向老师请教,但必须确保自己真正学到了知识,认真的看书并进行编程练习。一天的学习接近尾声时,就是老师考察大家一天的收获的时候了,老师总会出一些小题目让大家编出它的程序,虽然有的题目对我们来说还是有些难度的,但是在老师的指点下我们还是编出程序的,当我们看到自己编的程序运行正确时,总是会万分的兴奋,充满成就感。 就这样,仅仅一个星期的实训就结束了,虽然不能十分熟悉和运用MATLAB的所有程序,但是我们却打下了一定的基础,

在以后,当我们真正开始深入学习这门学问时,我们对它将不会再那么陌生,学起来也将轻松许多。这次实训为我们提供了一个很好的学习机会,唯一不足的就是时间有点短,我们不能在这段时间里学到更多的知识,因此,在这一周打下的基础上,我们需要用自己的努力去自学,以获取更多的知识。 知识是无穷无尽的,知识的获取需要一颗上进的心,老师将我们领进了门,下面的路就应该我们自己去走,即是充满荆棘,也要努力奋斗往前冲。

2010matlab复习提纲

2010—2011数值计算与MATLAB复习提纲 考试知识点 第二章 1)变量的命名规则 2)常用预定义变量:ans、eps、pi、i、j、inf、Inf、NaN、nan 3)内存变量文件的生成与加载:save / load 4)常用数学函数:sin、cos、sqrt、log、log10、log2、exp、pow2、abs、rem、 mod、fix、floor、ceil、round 5)矩阵的建立:直接输入法, 利用冒号表达式建立一个向量、linspace的含义与用法、 建立大矩阵 a)熟练掌握书本相关例题 6)矩阵的拆分:矩阵元素,size()\length(),矩阵拆分,利用空矩阵删除矩阵的元素 a)熟练掌握书本相关例题 7)特殊矩阵: zeros/ones/eye/rand/randn/zeros(size(A)) a)给定区间内的随机矩阵的建立 b)给定均值和方差的正态分布随机矩阵的建立 c)熟练掌握相关例题P26,2-4 8)Matlab运算: a)算术运算:+、-、*、/、\、^、点运算 b)关系运算:P32页6种关系运算符、关系运算德运算法则、相关例题 c)逻辑运算P33页3种逻辑运算符& | ~ 逻辑运算德运算法则、相关例题 d)运算优先级:算术> 关系> 逻辑 e)find()函数 9)对角阵与三角阵:diag()、triu()、tril() 10)矩阵的转置与旋转:rot90() 11)矩阵的逆、方阵的行列式:inv()、det() 12)字符串 ?本章相关的上机习题 第三章 matlab程序设计 1)命令文件与函数文件的区别:参数、变量、调用方式 2)程序的顺序结构,input函数及其应用、disp函数及其应用、程序的暂停 3)选择结构if语句,switch语句 4)循环结构for语句,while语句,break语句,continue语句、循环的嵌套P66, 3-8,3-9,3-10 5)函数文件:函数的定义,函数的调用(包括函数的递归调用)P70-71,3-15,3-16 6)全局变量与局部变量的用法:P72,3-18 ?本章相关的例题和布置的上机习题

MATLAB课程设计实验体会

课程设计实验体会 学生姓名:李祥胜 学生学号:20120704 专业班级:光信息科学与技术 指导老师:miss Chen 学院:信息工程学院 题目: MATLAB学期实验总结

MATLAB概念及介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB集成环境主要包括五个部分:MATLAB语言、MATLAB工作环境、句柄图形、MATLAB数学函数库和数学建模、小波分析、MATLAB API(App lication Program Interface)。MATLAB语言是以数组为基本数据单位,包括控制流程语句、函数、数据结构、输人输出及面向对象等特点的高级语言。利用SIMULINK对系统进行仿真与分析,在进入虚拟实验环境后,不需要书写代码,只需使用鼠标拖动库中的功能模块并将它们连接起来,再按照实验要求修改各元器件的参数。通过虚拟实验环境建立实验仿真电路模型,可使一些枯燥的电路变得有趣味,复杂的波形变得形象生动,使得各种复杂的能量转换过程比较直观地呈现。 1.1、MATLAB语言特点及优势 1.1.1、语言特点 MATLAB被称为第四代计算机语言,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB的最突出的特点就是简洁。MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB 给用户带来的是最直观、最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。 (1)语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。 (2)运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短,具体运算符见附表。 (3)MATLAB既具有结构化的控制语句(如for循环、while循环、break语句和if语句),又有面向对象编程的特性。 (4)语法限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。 (5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。

《MATLAB程序设计》复习资料

Matlab 习题及复习要点 1. Matlab 的英文组成;程序和变量的命名规则; 在MATLAB 语言中是区分字母大小的,也就是说,大写字母和小写字母代表的东西是不同的。 2.Matlab 中注释、关键词等的显示颜色;如何设置当前路径、如何设置搜索路径(例如第一次上机练习过的,新建的“D:\temp ”目录中有脚本文件abc.m ,若要能在命令窗口输入abc 执行则..); 3.熟悉Matlab 中的几种数据类型(int8、double 、logical 等); 4.在MATLAB 中计算数学公式(如三角函数、对数、开根号等)的表达; 5.掌握数组的几个操作(裁剪、扩增、eye 、zeros 等)、对角阵指令、均匀分布随即向量指令;数组中行和列的分隔符; 6. 在循环结构中的几个命令:break 、continue 等; 7. 已知字符'A'、'Z'、'a'、'z'的ASCII 码分别为65、90、97、122,str1为全为大写字母的字符串,采用什么命令可将该字符串转换成小写。 8. 在MATLAB 中求解线性方程组=Ax b 可采用什么指令; 9. 掌握基本运算符,例如*、.*、/、./、^、.^ 的区别 10.读懂逻辑表达式,会写出逻辑表达式的结果(0或1) 11. 掌握集中循环结构,尤其if..elseif…else…end 和swich…case 结构的语法,要准确。 12. 会编写分段函数的程序; x 和y 满足如下关系: 221211212x x y x x x x ?? 编写函数y=f(x),用于计算上述分段函数。 13. 绘图时采用的几个命令的掌握:hold on 、plot 、plot3 14*.用语句[x, y]=meshgrid(a:b)构建网格数据,例子如下: 示例一: x=-3:1:3;y=-2:1:2; [X,Y]= meshgrid(x,y); 这里meshgrid (x ,y )的作用是分别产生以向量x 为行,向量y 为列的两个大小相同的矩阵,其中x 的行是从-3开始到3,每间隔1记下一个数据,并把这些数据集成矩阵X ;同理y 的列则是从-2到2,每间隔1记下一个数据,并集成矩阵Y 。即 X= -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3

【参考文档】matlab实验心得体会_学习matlab的心得体会-优秀word范文 (3页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == matlab实验心得体会_学习matlab的心得体会 导语:通过对MATLAB的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了MATLAB的实用方法。以下是小编带来的matlab实验心得体会,希望对您有所帮助。 matlab实验心得体会(一) 学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种 极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比C语言简单。但是 深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数, 也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写 一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根 本不会什么实验。 学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。其中电场分布是无法用函数表达式表示。我知道计算 机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但 是在这方面没有提到相关信息。 总之,这个软件功能强大,不知什么时候国内才有类似的软件。 matlab实验心得体会(二) 我从中国石油大学(北京)来到大庆油田勘探开发研究院实习,刚刚来到这 里时我内心充满了激动和喜悦,对这个有着辉煌成绩的科研单位充满了期待。 到了这里没多久我就参加培训中心组织的入院教育,对研究院的辉煌过去有了 更深刻的了解,那时我就下定决心在研究院好好实习,多学习一些现场经验,为以后的工作打下良好的基础。 一个月的入院培训结束后,经过自己申请和中心安排我被分到了地震资料 处理一室,实习期间地震一室的副主任陈志德是我的现场导师,陈主任有着丰

计量经济学(英文)重点知识点考试必备

第一章 1.Econometrics(计量经济学): the social science in which the tools of economic theory, mathematics, and statistical inference are applied to the analysis of economic phenomena. the result of a certain outlook on the role of economics, consists of the application of mathematical statistics to economic data to lend empirical support to the models constructed by mathematical economics and to obtain numerical results. 2.Econometric analysis proceeds along the following lines计量经济学 分析步骤 1)Creating a statement of theory or hypothesis.建立一个理论假说 2)Collecting data.收集数据 3)Specifying the mathematical model of theory.设定数学模型 4)Specifying the statistical, or econometric, model of theory.设立统计或经济计量模型 5)Estimating the parameters of the chosen econometric model.估计经济计量模型参数 6)Checking for model adequacy : Model specification testing.核查模型的适用性:模型设定检验 7)Testing the hypothesis derived from the model.检验自模型的假设 8)Using the model for prediction or forecasting.利用模型进行预测 Step2:收集数据 Three types of data三类可用于分析的数据 1)Time series(时间序列数据):Collected over a period of time, are collected at regular intervals.按时间跨度收集得到

matlab实验心得体会.doc

matlab实验心得体会 篇一:matlab实验心得总结 通过《matlab仿真》实验使我学习掌握了许多知识。首先是对matlab 有了一个全新的认识,其次是对matlab的更多操作和命令的使用有了更高的掌握,最重要的事对matlab的处理能力有了一个更高的飞跃尤其是对相关函数的使用及相关问题的处理。 就对matlab相关的命令操作而言,通过这次实验的亲身操作和实践,学习掌握了许多原本不知道的或者不太熟悉的命令。比如说相关m文件的建立,画图用到的标注,配色,坐标控制,同一张图里画几幅不同的图像,相关参数的设置以及相关函数的调用格式等等。就拿建立一个数学方程而言,通过设置不同的参数达到所需要的要求和结果,而且还可以在不同的窗口建立不同的函数而达到相同的效果,比如说可以再命令窗口和m文件中通过不同的命令设置的到相同的所需的效果图。而自己对于矩阵及闭环传递函数的建立原本所掌握的知识几乎为零,而通过这次实验使我彻底的掌握了相关的命令操作和处理的方法,在这里我们不仅可以通过建立函数和参数来达到目标效果,而且还可以通过可视化的编程达到更快更方便,更简洁的效果。就拿可视化编程而言原本根本就只是听说而已罢了,从来就没有亲身去尝试过,然而现在自己却可以和容易的通过搭建不同功能木块来实现相关的函数及功能。这些在原本根本就不敢相信,然而通过《matlab仿真》的学习和实验亲身操作这些原本看似不可能的操作在此就变的轻而易举的事了。

再此我不得不题到的事指导老师教我们怎么去搭建构造相关闭环传递函数的实验,这个实验几乎在我们的这次实验中占据了非常大的比重,在后面的几个大一点的实验中几乎都是涉及这个方面的内容,我现在想说的事怎么去搭建相关的函数和功能模块对我们来说几乎已经不是什么难事了,就拿怎么去对模块功能的实现以及分析确实是个重点和难点。通过对同一个模块分析其对应的不同的参数分析图的建立去分析和解释其对应的相关功能和技术指标和性能分析是非常重要的,我们不可能只需要建立相关的模块和功能就说自己掌握了所有的相关知识和技术,真正的技术和知识是怎么去分析和解释相关的技术指标和功能参数才是重中之重。就此而言,我坦诚的说自己所掌握的还是十分的有限的,但是老师给我们介绍的相关方法和技巧还是十分有效果的,如果自己真的想在这方面有什么建树对自己以后的要求还是需要更改的要求的,万不可以就此止步不前,自命不凡,我们还需掌握和了解还有许多许多,我们真正所掌握的只是皮毛,要想取得更大的成绩就得不断的去努力学习和汲取相关的知识和技巧。万不可自以为傲,裹足不前,matlab真的是个非常强大和有用的工具我们真正的能把它学懂学透的话还是需要下非常大的功夫和努力的。然而,不是说兴趣才是最大的老师嘛,我也相信,只要你自己有兴趣,即使它再怎么强大和难搞,我们能做的还是非常多的,关键的就只是在于你自己的态度了。我这里想说的事,matlab对于我来说是非常有吸引力的,我不敢说自己多么喜欢它,但是兴趣确实蛮高的,所以我相信在以后的学习和工作当中matlab将成为我非常有用的帮忙工具和好伙伴,也许这要说有点太草率了,但是我觉得对它的评价怎么也不会让每一个接触

Matlab知识点

零、帮助 1、help命令:如help fun 显示某函数的功能和语法描述。如help sin。若单独使用help 命令,则显示出帮助主题。 2、lookfor命令:如lookfor XYZ 在所有的M文件中查找XYZ关键词。 一、变量 1、Matlab区分大小写;标准函数及命令字母必须小写。 2、命令后加分号,则不显示运算结果。 3、注释以%开头。 4 5、who、whos命令:显示工作空间中的变量清单或列表。 6、clear命令:删除工作空间中的变量。 7、较大矩阵数值的输入:在命令窗口中向一个新变量赋空阵,在工作空间窗口中双击该变 量,打开变量编辑器,填表即可。 8、save命令:把一些变量存储到磁盘文件(.mat),文件名中不能出现后缀。 9、load命令:将文件中的变量调入内存。 10、单个数据的算术运算只是矩阵运算的特例。 11、常用算术运算符:+ - * / \ ^ ( ) 12、关系运算符:< <= > >= == ~=(不等于) 13、逻辑运算符:&(与)、|(或)、~(非) 二、常用数学函数

1、三角函数以弧度为单位。 2、abs函数还可求字符串的ASCII码。 3、这些函数几乎都可以针对向量或矩阵进行运算。 三、数据的输出格式 1、format命令:设置或改变数据输出的格式。其格式符如下: 四、矩阵运算(向量是特殊的矩阵) 1、直接输入法建立矩阵:矩阵元素用方括号括起来,按矩阵行顺序输入各元素,同一行各 元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。如:A=[1,2,3;4,5,6] 2、利用.m文件建立矩阵:即将矩阵的赋值命令写入到一个.m文件中,并运行该文件。 3、利用冒号表达式建立一个向量:A=e1:e2:e3 其中,e1为初始值、e2为步长、e3为终止 值。e2可省略,如A=e1:e3,则步长为1。 4、linspace函数:也可产生一个行向量,如A=linspace(a,b,n) 其中,a为第1个元素, b为最后一个元素,n为元素总数。n可省略,默认产生100个元素。 5、利用已建好的矩阵建立更大的矩阵:如:A=[B,C;C,B]。 6、矩阵元素的引用:如A(3,2)=200 即对矩阵A的第3行第2列的元素赋值为200。若赋值 时给出的下标超出范围,则将对A进行扩展,扩展后的未赋值矩阵元素置0。 7、矩阵按列存储。矩阵元素也可按序号进行引用,如A(2)=100。 8、size函数:如[l,c]=size(A),返回两个元素的向量,分别是矩阵A的行数和列数。 9、sub2ind函数:如sub2ind(size(A),l,c),返回矩阵A的第l行第c列元素的序号。 10、ind2sub函数:如[l,c]=ind2sub(size(A),n),返回矩阵A中序号为n的元素的行列下 标值。 11、length函数:如length(A) 返回矩阵A的行数和列数中的较大者。 12、ndims函数:如ndims(A) 返回A的维数。 13、利用冒号表达式获得子矩阵 ①如A(a,:) 表示矩阵A的第a行的全部元素。 ②如A(:,b) 表示矩阵A的第b列的全部元素。 ③如A(a:b,:) 表示矩阵A的第a行至第b行的全部元素。

Matlab基础知识点汇总

MATLAB讲义 第一章 MATLAB系统概述 1.1 MATLAB系统概述 MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。 特点: (1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。 (2)语句书写简单。 (3)语句功能强大。 (4)有丰富的图形功能。如plot,plot3语句等。 (5)提供了许多面向应用问题求解的工具箱函数。目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。 (6)易扩充。 1.2 MATLAB系统组成 (1)MATLAB语言 MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。同时MATLAB又具有面向对象编程特色。MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。 (2)开发环境 MATLAB开发环境有一系列的工具和功能体,其部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。 (3)图形处理 图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。还包括低级的图形命令,供用户自由制作、控制图形特性之用。 (4)数学函数库 有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。 MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。 (5)MATLAB应用程序接口(API) MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。 1.3 MATLAB的应用围包括: MATLAB的典型应用包括: ●数学计算 ●算法开发 ●建模、仿真和演算 ●数据分析和可视化 ●科学与工程绘图 ●应用开发(包括建立图形用户界面) 以矩阵为基本对象 第二章 Matlab基础

matlab实验心得总结

通过《matlab仿真》实验使我学习掌握了许多知识。首先是对matlab有了一个全新的认识,其次是对matlab的更多操作和命令的使用有了更高的掌握,最重要的事对matlab的处理能力有了一个更高的飞跃尤其是对相关函数的使用及相关问题的处理。 就对matlab相关的命令操作而言,通过这次实验的亲身操作和实践,学习掌握了许多原本不知道的或者不太熟悉的命令。比如说相关m文件的建立,画图用到的标注,配色,坐标控制,同一张图里画几幅不同的图像,相关参数的设置以及相关函数的调用格式等等。就拿建立一个数学方程而言,通过设置不同的参数达到所需要的要求和结果,而且还可以在不同的窗口建立不同的函数而达到相同的效果,比如说可以再命令窗口和m文件中通过不同的命令设置的到相同的所需的效果图。而自己对于矩阵及闭环传递函数的建立原本所掌握的知识几乎为零,而通过这次实验使我彻底的掌握了相关的命令操作和处理的方法,在这里我们不仅可以通过建立函数和参数来达到目标效果,而且还可以通过可视化的编程达到更快更方便,更简洁的效果。就拿可视化编程而言原本根本就只是听说而已罢了,从来就没有亲身去尝试过,然而现在自己却可以和容易的通过搭建不同功能木块来实现相关的函数及功能。这些在原本根本就不敢相信,然而通过《matlab仿真》的学习和实验亲身操作这些原本看似不可能的操作在此就变的轻而易举的事了。 再此我不得不题到的事指导老师教我们怎么去搭建构造相关闭环传递函数的实验,这个实验几乎在我们的这次实验中占据了非常大的比重,在后面的几个大一点的实验中几乎都是涉及这个方面的内容,我现在想说的事怎么去搭建相关的函数和功能模块对我们来说几乎已经不是什么难事了,就拿怎么去对模块功能的实现以及分析确实是个重点和难点。通过对同一个模块分析其对应的不同的参数分析图的建立去分析和解释其对应的相关功能和技术指标和性能分析是非常重要的,我们不可能只需要建立相关的模块和功能就说自己掌握了所有的相关知识和技术,真正的技术和知识是怎么去分析和解释相关的技术指标和功能参数才是重中之重。就此而言,我坦诚的说自己所掌握的还是十分的有限的,但是老师给我们介绍的相关方法和技巧还是十分有效果的,如果自己真的想在这方面有什么建树对自己以后的要求还是需要更改的要求的,万不可以就此止步不前,自命不凡,我们还需掌握和了解还有许多许多,我们真正所掌握的只是皮毛,要想取得更大的成绩就得不断的去努力学习和汲取相关的知识和技巧。万不可自以为傲,裹足不前,matlab真的是个非常强大和有用的工具我们真正的能把它学懂学透的话还是需要下非常大的功夫和努力的。然而,不是说兴趣才是最大的老师嘛,我也相信,只要你自己有兴趣,即使它再怎么强大和难搞,我们能做的还是非常多的,关键的就只是在于你自己的态度了。我这里想说的事,matlab对于我来说是非常有吸引力的,我不敢说自己多么喜欢它,但是兴趣确实蛮高的,所以我相信在以后的学习和工作当中matlab将成为我非常有用的帮忙工具和好伙伴,也许这要说有点太草率了,但是我觉得对它的评价怎么也不会让每一个接触过它的人吝啬是自己赞美之词。它不仅仅可以用来建模分析函数,还可以用来进行图形的建模和仿真,还可以用来分析系统和函数的参数稳定性等等。再次就不一一列举了,我怕三天也不会说完的。

相关主题
相关文档 最新文档