matlab复习整理.docx

上传人:b****9 文档编号:25874852 上传时间:2023-06-16 格式:DOCX 页数:44 大小:544.68KB
下载 相关 举报
matlab复习整理.docx_第1页
第1页 / 共44页
matlab复习整理.docx_第2页
第2页 / 共44页
matlab复习整理.docx_第3页
第3页 / 共44页
matlab复习整理.docx_第4页
第4页 / 共44页
matlab复习整理.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

matlab复习整理.docx

《matlab复习整理.docx》由会员分享,可在线阅读,更多相关《matlab复习整理.docx(44页珍藏版)》请在冰豆网上搜索。

matlab复习整理.docx

matlab复习整理

Matlab复习整理

1.Matlab默认的预定义变量

常数

返回值

ans

默认变量名,保存最近的结果

eps

浮点相对精度

realmax

最大浮点数

realmin

最小浮点数

pi

圆周率

i,j

虚数单位

inf

无限值

NaN

不合法的数值值,非数值

computer

计算机类型

version

MATLAB版本字符串

2.常用标点功能

指令间的分隔符!

3.①常见的通用操作指令

-who列出在MATLAB工作空间中已有的变量

-whos列出驻留变量的同时,还给出维数及性质

-clear删除内存中的变量(数据)

-clc删除命令窗口的内容(已使用过的命令)

-home光标移到命令窗口的左上角

-clf删除图形窗口的内容

-↑调出刚才使用过的命令

-quit退出MATLAB

②文件操作命令

-what:

按扩展名分类列出当前目录上的文件

-what*.m:

列出当前目录中所有m文件

-whichtest.m:

显示test.m所在的路径

-path显示matlab启动时设定的搜索路径

-Dir可显示当前目录下的所有文件

-del删除指定文件

③输入输出命令

4.①工作空间的管理指令

②执行命令时的工作空间

5.M脚本文件和M函数文件的主要区别

命令文件(ScriptFile脚本式M文件)

-无输入参数,不返回参数

-操作工作空间中的数据

-对于需要多次执行的一系列命令特别有用

函数文件(FunctionFile函数式M文件)

-可输入参数,也可返回参数

-函数的变量为局部变量,也-可设外部变量。

-扩充MATLAB的函数库

6.程序结构控制语句

A.顺序结构

1.数据的输入

从键盘输入数据,则可以使用input函数来进行,该函数的调用格式为:

A=input(提示信息,选项);

其中提示信息为一个字符串,用于提示用户输入什么样的数据。

如果在input函数调用时采用's'选项,则允许用户输入一个字符串。

例如,想输入一个人的姓名,可采用命令:

xm=input('What'syourname?

','s');

2.数据的输出

MATLAB提供的命令窗口输出函数主要有disp函数,其调用格式为

disp(输出项)

其中输出项既可以为字符串,也可以为矩阵。

例3-2输入x,y的值,并将它们的值互换后输出。

程序如下:

x=input('Inputxplease.');

y=input('Inputyplease.');

z=x;

x=y;

y=z;

disp(x);

disp(y);

B.选择结构

双分支if语句:

if条件

语句组1

else

语句组2

end

当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句。

7.①数组的表示,数值数组的创建和寻访,一维数组、二维数组、结构体、元胞数组的用法、创建

A.数组的表示:

只需要用空格或逗号间隔数组元素,再用方括号括起来。

B.数值数组的创建和寻访

a)创建数组向量的三种常用方法:

1.增量法(利用冒号生成向量start:

step:

end)

x=i:

j如果i

x=i:

j:

k如果i

x=i:

-j:

k如果i>k,生成以i为初值,k为终值,-j为步长的有限等差数列;

2.利用linspace(a,b)生成等差向量

a=linspace(n1,n2,n)

在线性空间上,行矢量的值从n1到n2,数据个数为n,缺省n为100。

》a=linspace(1,10,10)

a=

12345678910

x=linspace(2,8)将生成100个数,以2开始,以8结束。

y=linspace(2,8,10)将生成10个数,以2开始,以8结束。

3.利用logspace(a,b)生成等比向量

a=logspace(n1,n2,n)

在对数空间上,行矢量的值从10n1到10n2,数据个数为n,缺省n为50。

这个指令为建立对数频域轴坐标提供了方便。

》a=logspace(1,3,3)

a=

101001000

b)数值数组的寻访与赋值:

x(3):

寻访数组x的第三个元素

x([125]):

返回数组x的第1、2、3个元素组成的子数组

x(2:

4):

返回数组x第2到第4个元素组成的子数组

x(2:

end):

返回数组x第2个元素到最后一个元素组成的子数组

x(3:

-1:

1):

返回数组x第3个元素以步长为-1到第1个元素组成的子数组,即等效为x=([321])

x(find(x>0.5)):

返回数组x中大于0.5的元素组成的子数组

x([1235631]):

对数组x中的元素可以重复寻访,返回的数组长度允许大于原数组

x(3)=12:

把数组x的第3个元素赋值为12

x([14])=[28]:

把数组x的第1、4个元素分别赋值为2和8

②矩阵操作、运算(重点啊尼玛尼玛~)

A.矩阵创建的常用方法:

1.直接输入法;2.函数法;3.矩阵编辑器;4.交互输入法,5.数据文件法。

B.直接输入法三条规则:

1.矩阵元素必须在方括号[]之内;

2.同一行相邻元素间用逗号或空格分隔;

3.矩阵的行与行之间必须用分号分隔。

C.函数法构造特殊矩阵

C=[]—产生空阵

A=diag(V)--对角元素向量V=[a1,a2,…,an]

r=rand——产生随机数

R=rand(3,4)——产生3×4阶随机矩阵

E=eye(3)——产生3阶单位矩阵

B=zeros(3,4)——产生3×4阶全“0”矩阵

D=ones(3,4)——产生3×4阶全“1”的矩阵

X=magic(3)——产生3阶幻方

Y=vander(4)——产生4阶范德蒙矩阵

示例:

》eye(2,3)

ans=

100

010

》zeros(2,3)

ans=

000

000

》ones(2,3)

ans=

111

111

》V=[572];A=diag(V)

A=

500

070

002

》eye

(2)

ans=

10

01

》zeros

(2)

ans=

00

00

》ones

(2)

ans=

11

11

 

如果已知A为方阵,则V=diag(A)可以提取A的对角元素构成向量V。

D.通过提示语句输入矩阵或数组

x=input(‘prompt’),或;

x=input('prompt','s');

在屏幕上显示一个提示符,等待用户从键盘输入,并读取用户输入到工作空间中。

;

第一种方式供输入数字,而后一种方式供输入字符串。

;

示例:

例3-3

>>yourName=input('请输入您的姓名:

\n','s')

请输入您的姓名:

zhao

yourName=

zhao

>>yourAge=input('请输入您的年龄:

')

请输入您的年龄:

33

yourAge=

33

E.数据文件法

通过函数将其加载到工作空间中,从而恢复以前保存过的变量。

常用格式:

load-asciifilename %加载ascii码数据文件

load-matfilename %加载二进制数据文件

F.数组/矩阵元素的操作主要有提取(部分)元素、修改或赋值给(部分)元素值、删除(部分)元素及数组/矩阵的翻转等。

a)矩阵提取

MATLAB通过确认矩阵下标,可以对矩阵进行插入子块,提取子块和重排子块的操作。

A(m,n):

提取第m行,第n列元素

A(:

n):

提取第n列元素

A(m,:

):

提取第m行元素

A(m1:

m2,n1:

n2):

提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子块)。

A(:

):

得到一个长列矢量,该矢量的元素按矩阵的列进行排列。

示例:

A=[269;428;351]

A=269

428

351

A(3,2)

ans=5

A(6)//等同A(3,2),列优先

ans=5

Sum(A(1:

3,3))//求第三列元素之和

b)矩阵的子矩阵可以通过向量、标量或冒号的标识来引用和赋值

>>A=magic(3)

A=

816

357

492

>>A1=A(1:

2:

3,[2,3])%对应1,3行,2,3列

A1=

16

92

>>A2=A(:

2:

end)%:

表示全部,end表示到最后一列

A2=

16

57

92

>>L1=logical([101]);%给出逻辑向量L1

>>L2=logical([110]);%给出逻辑向量L2

>>A3=A(L1,L2)%通过逻辑微量矩阵标识子矩阵,取出L1指定的1,3行和L2指定的1,2列

A3=

81

49

c)矩阵的大小

[m,n]=size(A,x):

返回矩阵的行列数m与n,当x=1,则只返回行数m,当x=2,则只返回列数n。

length(A)=max(size(A)):

返回行数或列数的最大值。

rank(A):

求矩阵的秩

示例:

》a=[123;345];

》[m,n]=size(a)

m=

2

n=

3

》length(a)

ans=

3

》max(size(a))

ans=

3

》rank(a)

ans=

2

d)数组的扩展

A=reshape(1:

9,3,3)

A=

147

258

369

A(5,5)=111

A=

14700

25800

36900

00000

0000111

A(:

6)=222

A=

14700222

25800222

36900222

00000222

0000111222

A=[[A;[135]][1;2;3;4]]

A=1471

2582

3693

1354

e)矩阵的一些特殊操作

矩阵的变维

a=[1:

12];

b=reshape(a,3,4)

c=zeros(3,4);c(:

)=a(:

b=

14710

25811

36912

c=

14710

25811

36912

reshape的使用演示

a=-4:

4

A=reshape(a,3,3)

a=

-4-3-2-101234

A=

-4-12

-303

-214

f)MATLAB下矩阵的运算

加减运算

加、减(A+B,A-B)或plus(A,b),minus(A,B)

示例:

a=[12;34];b=[35;59]

》c=a+bd=a-b

》c=d=

47-2-3

813-2-5

》a*b=[1323;2951]

除法运算

左除:

a\b运算等效于求a*x=b的解;

x=a-1b或x=mldivide(a,b);左边作为除数;

右除:

a/b运算等效于求x*b=a的解。

;

x=ba-1或x=mrdivide(a,b);右边作为除数;

一般A\B≠B/A

g)数组/矩阵翻转函数

B=rot90(A)

矩阵逆时针旋转90°

B=shiftdim(X,n)

矩阵的元素移位

B=flipud(A)

矩阵上下翻转

U=triu(X)

得到矩阵的上三角矩阵

B=fliplr(A)

矩阵左右翻转

L=tril(X)

得到矩阵的下三角矩阵

B=flipdim(A,dim)

矩阵的某维元素翻转

示例:

A=

-4-12

-303

-214

A.'

ans=

-4-3-2

-101

234

flipud(A)%上下

ans=

-214

-303

-4-12

fliplr(A)%左右

ans=

2-1-4

30-3

41-2

rot90(A)

ans=

234

-101

-4-3-2

h)四则运算与幂运算

》a=[12;34];b=[35;59]

》a*b=[1323;2951]

》a/b=[-0.500.50;3.50–1.50]

》a\b=[-1-1;23]

》a^3=[3754;81118]

》a.*b=[310;1536]

》a./b=[0.330.40;0.600.44]

》a.\b=[3.002.50;1.672.25]

》a.^3=[18;2764]

-只有维数相同的矩阵才能进行加减运算。

-a\b运算等效于求a*x=b的解;而a/b等效于求x*b=a的解。

只有方阵才可以求幂。

-点运算是两个维数相同矩阵对应元素之间的运算,在有的教材中也定义为数组运算。

i)数组乘方(.^)——元素对元素的幂

示例:

a=[123];b=[456];

z=a.^2

z=

1.004.009.00

z=a.^b

z=

1.0032.00729.00

j)矩阵的其它运算

inv——矩阵求逆

det——行列式的值

eig——矩阵的特征值

diag——对角矩阵

A’、A.’——矩阵转置

sqrt——矩阵开方

取整

floor(A)---取不足整数

ceil(A)----取过剩整数

round(A)---四舍五入

fix(A)------按0近方向取整

取余

rem(A,x)---A矩阵除以模数x后的余数

其他变换函数

[n,m]=rat(A):

有理数近似

mod(A,k)、rem(A,k):

求模与余数

gcd(n,m)、lcm(n,m):

最大公约数、最小公倍数

示例:

【例】找出数组中所有绝对值大于3的元素。

A=zeros(2,5);

A(:

)=-4:

5;

L=abs(A)>3

islogical(L)%returnstrueifLisalogicalarrayandfalseotherwise

X=A(L)

A=

-4-2024

-3-1135

L=

10001

00001

ans=

1

X=

-4

4

5

G.

注意:

在处理逻辑运算时,运算元只有两个值即0和1,所以如果指定的数为0,MATLAB认为其为0,而任何数不等于0,则认为是1。

0—不成立1—成立

示例:

设有:

A=[5-40-0.5]B=[0109]

&与

A&B=[0101]A&1=[1101]

|或

A|B=[1101]A|1=[1111]

~非

~A=[0010]~1=0

8.符号变量,生成符号对象的基本规则,创建

①什么是符号运算?

与数值运算的区别

数值运算中必须先对变量赋值,然后才能参与运算。

符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。

特点:

运算对象可以是没赋值的符号变量

可以获得任意精度的解

②符号变量与符号表达式

f='sin(x)+5x'

f——符号变量名

sin(x)+5x——符号表达式

''——符号标识

符号表达式一定要用''单引号括起来matlab才能识别。

③生成符号对象

a)sym函数

sym函数的主要功能是创建符号变量,以便进行符号运算,也可以用于创建符号表达式或符号矩阵。

用sym函数创建符号变量的一般格式为:

x=sym(‘x’)

其目的是将’x’创建为符号变量,以x作为输出变量名。

每次调用该函数,可以定义一个符号变量。

示例:

求方程的解析解。

解:

a=sym('a');%定义‘a’为符号运算量,输出变量名为a

b=sym('b');

x=sym('x');

y=sym('y');

[x,y]=solve(a*x-b*y-1,a*x+b*y-5,x,y)%以a,b为符号常数,x,y为符号变量

即可得到方程组的解:

x=3/a

y=2/b

syms函数

示例:

f=xn

g=sin(at+b)

中的系统默认变量。

symsabntx%定义符号变量

f=x^n;%给定符号函数

g=sin(a*t+b);

findsym(f,1)%在f函数中查询1个系统默认变量

ans=x

表示f函数中查询的1个系统默认变量为x

④符号矩阵的创建

数值矩阵A=[1,2;3,4]

A=[a,b;c,d]——不识别

用matlab函数sym创建矩阵(symbolic的缩写)

命令格式:

A=sym('[]')

※符号矩阵内容同数值矩阵

※需用sym指令定义

※需用''标识

示例:

A=sym('[a,2*b;3*a,0]')

A=

[a,2*b]

[3*a,0]

这就完成了一个符号矩阵的创建。

注意:

符号矩阵的每一行的两端都有方括号,这是与matlab数值矩阵的一个重要区别。

9.①MATLAB绘图函数,多图绘制,图区选择

A.二维绘图

1.plot——最基本的二维图形指令

函数格式:

plot(x,y)其中x和y为坐标向量

函数功能:

以向量x、y为轴,绘制曲线。

示例:

在区间0≤X≤2p内,绘制正弦曲线Y=SIN(X),其程序为:

x=0:

pi/100:

2*pi;

y=sin(x);

plot(x,y)

B.二维绘图一般步骤

数据准备

选定图形窗入子图位置

调用(高层)绘图指令

设置轴的范围与刻度、坐标分格线

图形注释

图形的精细修饰(图柄操作)

打印

C.多图绘制

a)输入多对参数

调用格式为:

plot(x1,y1,x2,y2,…,xn,yn)

当输入参数都为向量时,x1和y1,x2和y2,…,xn和yn分别组成一组向量对,每一组向量对的长度可以不同。

每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。

示例:

x1=linspace(0,2*pi,100);

x2=linspace(0,3*pi,100);

x3=linspace(0,4*pi,100);

y1=sin(x1);

y2=1+sin(x2);

y3=2+sin(x3);

x=[x1;x2;x3]';

y=[y1;y2;y3]';

plot(x,y,x1,y1-1)

b)通过图形保持

holdon/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换。

示例:

y3=cos(t);y4=cos(t+0.25);y5=cos(t+0.5);

plot(t,y3);holdon;plot(t,y4);plot(t,y5);

c)通过图区分割

subplot(m,n,p)——子图分割命令

m-行n-列p-图形序号(从左到右,由上至下)

示例:

t=-pi:

0.3:

pi;y=1./(1+exp(-t));

subplot(221),plot(t,y);title('plot(t,y)')

subplot(222),stem(t,y);title('stem(t,y)')

subplot(223),semilogy(t,y);title('semilogy(t,y)')

subplot(224),stairs(t,y);title('stairs(t,y)')

d)多窗口绘制函数"figure"

figure(n)——创建窗口函数,n为窗口顺序号。

示例:

t=0:

pi/100:

2*pi;

y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);

plot(t,y)%——自动出现第一个窗口

figure

(2)

plot(t,y1)%——在第二窗口绘图

figure(3)

plot(t,y2)%——在第三窗口绘图

②二维、三维网格、曲面,符号函数绘曲线图,曲面图,相空间曲线

这一栏目需要掌握曲线,曲面,网格的绘制.重点放在作业上。

A.符号函数绘曲线图(隐函数绘图)

函数

说明

函数

说明

ezplot(fun,[min,max])

二维曲线

ezsurf(fun,domain)

曲面图

ezplot3(funx,funy,funz,[tmin,tmax])

三维曲线

ezsurfc(fun,domain)

画带等位线的曲面图

ezpolar(fun,[a,b])

极坐标

ezmesh(fun,domain)

画网线图

ezcontourf(fun,domain)

填色

等位图

ezmeshc(fun,domain)

画带等位线的网线图

ezcontour(fun,domain)

等高线

 

 

示例:

subplot(2,2,1);

ezplot('x^2+y^2-9');axisequal

subplot(2,2,2);

ezplot('x^3+y^3-5*x*y+1/5')

subplot(2,2,3);

ezplot('cos(tan(pi*x))',[0,1])

subplot(2,2,4);

ezplot('8*cos(t)','4*sqrt

(2)*sin(t)',[0,2*pi])

B.三维绘图

plot3函数与plot函数用法十分相似,其调用格式为:

plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)

其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。

当x,y,z是同维向量时,则x,y,z对应元素构成一条三维曲线。

当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。

类似于plot函数,plot3也可以绘制多条曲线,并可以分别对不同曲线进行修饰。

示例:

t=0:

pi/100:

20*pi;

x=sin(t);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1