MATLAB76教程教程经典Word文件下载.docx

上传人:b****6 文档编号:19590673 上传时间:2023-01-08 格式:DOCX 页数:130 大小:426.21KB
下载 相关 举报
MATLAB76教程教程经典Word文件下载.docx_第1页
第1页 / 共130页
MATLAB76教程教程经典Word文件下载.docx_第2页
第2页 / 共130页
MATLAB76教程教程经典Word文件下载.docx_第3页
第3页 / 共130页
MATLAB76教程教程经典Word文件下载.docx_第4页
第4页 / 共130页
MATLAB76教程教程经典Word文件下载.docx_第5页
第5页 / 共130页
点击查看更多>>
下载资源
资源描述

MATLAB76教程教程经典Word文件下载.docx

《MATLAB76教程教程经典Word文件下载.docx》由会员分享,可在线阅读,更多相关《MATLAB76教程教程经典Word文件下载.docx(130页珍藏版)》请在冰豆网上搜索。

MATLAB76教程教程经典Word文件下载.docx

要求实参和形参位置一一对应。

形参在工作空间中不会存在。

可以编写递归函数,可以嵌套其他函数。

可以用return命令返回,也可以执行到终点返回

3.工作空间(Workspace)窗口:

显示目前保存在内存中的Matlab的数学结构、字节数、变量名以及类型窗口。

保存变量:

File菜单\SaveWorkspaceas命令行:

save文件名

装入变量:

File菜单\ImportData命令行:

Load文件名

4.现在目录窗口(CurrentDirectory)

5.命令历史窗口(CommandHistory):

提供先前使用过的函数,可以复制或者再次执行这些命令。

Matlab帮助系统

Matlab在命令窗口提供了可以获得帮助的命令,用户可以很方便的获得帮助信息。

例如:

在窗口中输入“helpfft”就可以获得函数“fft”的信息。

常用的帮助信息有help,demo,doc,who,whos,what,which,lookfor,helpbrowser,helpdesk,exit,web等。

三、关于变量

变量命名规则:

●变量名是不包含空格的单个词

●变量名区分大小写

●变量名必须以字母开头的字母、数字、下划线的组合,最多19个字符。

●Matlab提供的标准函数名均以小写字母开头

特殊变量名:

●ans缺省变量名

●pi圆周率

●i,j虚数单位

●eps无穷小

●inf,Inf无穷大

●realmax最大正实数

●realmin最小正实数

清除变量的值

●clear

●clear变量名1变量名2

显示驻留内存的变量名

●who

●whos

第2节Matlab编程

一、矩阵(数组)的输入

1、直接输入

直接按行方式输入每个元素:

同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;

不同的行用分号(;

)分隔。

所有元素处于一方括号([])内;

多维矩阵用多重方括弧。

可建立复数矩阵

如:

Null_M=[]%生成一个空矩阵

R=[1,2,3;

4,5,6]

I=[7,8,9;

10,11,12]

Z=R+I*j

2.由M文件方式建立,今后使用键入M文件名即可建立相应矩阵

2、利用函数输入

“:

”表达式,产生等差行向量start:

step:

end或start:

end(step=1)如:

t=1:

20

产生等距输入:

linspace(a,b,n)将〔a,b〕区间分成n-1个等距小区间

产生随机排列:

randperm(n)产生1~n之间整数的随机排列

3、特殊矩阵输入

zeros(n)生成n×

n全零阵,

zeros(a,b)元素全为0的a×

b维矩阵,以下各函数同理具有该类型。

zeros(size(A))生成与矩阵A相同大小的全零阵,

ones(a,b)元素全为1的a×

b维矩阵

eye(a,b)对角线上的元素为1的a×

rand(a,b)产生a×

b维均匀分布的随机矩阵,其元素在(0,1)内

rand无变量输入时只产生一个随机数

randn(a,b)产生a×

b维正态分布的随机矩阵

4.矩阵的转置和逆矩阵

⏹X的转置:

X’(图像顺时针旋转90°

,并水平镜像)

a=imread('

D:

\2-1.bmp'

);

b=a'

;

subplot(1,2,1),subimage(a),subplot(1,2,2),subimage(b)

⏹X的逆矩阵inv(X)

二、矩阵元素的访问及其大小的确定

访问第n个元素:

X(n)(n>

=1)

访问多个元素:

X([n1,n2,n3……])或X(1:

10)

确定元素的个数:

numel(X)

确定矩阵的大小:

[m,n,l]=size(X)

三、矩阵的算数运算

●数与矩阵的运算:

m等价于m.

m+A:

m与A中各元素相加

m-A:

m与A中各元素相减

A:

m与A中各元素相乘

m./A:

m除以A中各元素(没有m/A)

m\A:

A中各元素除以m

●矩阵与矩阵的运算

A+B:

A、B对应元素相加

A-B:

A、B对应元素相减

B:

A、B矩阵按线性代数中矩阵乘法运算进行相乘(注意维数匹配)

A.*B:

A、B对应元素相乘(注意维数相同)

A/B:

A除以B矩阵(⇨A×

B-1)(注意维数匹配)

A./B:

A除以B中各元素

A\B:

B除以A矩阵(⇨A-1×

B)(注意维数匹配)

A.\B:

B除以A中各元素

A^m:

相当于矩阵A×

矩阵A×

矩阵A…….(m为小数即是矩阵的开方运算)(注意维数匹配)

A.^m:

矩阵A中各元素的m次方

A.^B:

矩阵A中各元素的进行B中对应元素次方(注意维数相同)

四、关系运算

<

、<

=、>

、>

=、==、~=六种关系运算符。

关系成立结果为1,否则为0。

五、逻辑运算

设矩阵A和B都是m×

n矩阵或其中之一为标量,在MATLAB中定义了如下的逻辑运算:

&

、|、~、xor(真为1,假为0)

(1)矩阵的与运算

格式A&

B或and(A,B)

说明A与B对应元素进行与运算,若两个数均非0,则结果元素的值为1,否则为0。

(2)或运算

格式A|B或or(A,B)

说明A与B对应元素进行或运算,若两个数均为0,则结果元素的值为0,否则为1。

(3)非运算

格式~A或not(A)

说明若A的元素为0,则结果元素为1,否则为0。

(4)异或运算

格式xor(A,B)

说明A与B对应元素进行异或运算,若相应的两个数中一个为0,一个非0,则结果为0,否则为1。

六、集合运算

1.两个集合的交集intersect

2.检测集合中的元素ismember

3.两集合的差setdiff

4.两个集合交集的非(异或)函数setxor

5.两集合的并集union

6.取集合的单值元素unique

七、MatLab的控制流

由各种语句构成

语句后面加“;

”号,不显示运算结果

%开头表示是注释语句

赋值语句

变量=表达式

表达式(相当于将值付给ans变量)

演示(三)

for循环结构

【例】一个简单的for循环示例。

fori=1:

10;

%i依次取1,2,…10,.

x(i)=i;

%对每个i值,重复执行由该指令构成的循环体,

end;

x%要求显示运行后数组x的值。

x=

12345678910

while循环结构

【例】Fibonacci数组的元素满足Fibonacci规则:

现要求计算出该数组中第一个大于10000的元素。

a

(1)=1;

a

(2)=1;

i=2;

whilea(i)<

=10000

a(i+1)=a(i-1)+a(i);

%当现有的元素仍小于10000时,求解下一个元素。

i=i+1;

i,a(i),

i=

21

ans=

10946

if-else-end分支结构

【例1】一个简单的分支结构。

cost=10;

number=12;

ifnumber>

8

sums=number*0.95*cost;

end,sums

sums=

114.0000

【例2】用for循环指令来寻求Fibonacc数组中第一个大于10000的元素。

n=100;

a=ones(1,n);

fori=3:

n

a(i)=a(i-1)+a(i-2);

ifa(i)>

a(i),

break;

%跳出所在的一级循环。

end;

end,i

10946

21

switch-case结构

【例】学生的成绩管理,演示switch结构的应用。

clear;

%划分区域:

满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(<

60)。

a{i}=89+i;

b{i}=79+i;

c{i}=69+i;

d{i}=59+i;

c=[d,c];

Name={'

Jack'

'

Marry'

Peter'

Rose'

Tom'

};

%元胞数组

Mark={72,83,56,94,100};

Rank=cell(1,5);

%创建一个含5个元素的构架数组S,它有三个域。

S=struct('

Name'

Name,'

Marks'

Mark,'

Rank'

Rank);

%根据学生的分数,求出相应的等级。

5

switchS(i).Marks

case100%得分为100时

S(i).Rank='

满分'

%列为'

等级

casea%得分在90和99之间

优秀'

优秀'

caseb%得分在80和89之间

良好'

良好'

casec%得分在60和79之间

及格'

及格'

otherwise%得分低于60

不及格'

%列为'

等级

end

end

%将学生姓名,得分,登记等信息打印出来。

disp(['

学生姓名'

得分'

等级'

]);

disp('

'

5;

disp([S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank]);

学生姓名得分等级

Jack72及格

Marry83良好

Peter56不及格

Rose94优秀

Tom100满分

try-catch结构

【例】try-catch结构应用实例。

clear,N=4;

A=magic(3);

%设置3行3列矩阵A。

try

A_N=A(N,:

),%取A的第N行元素

catch

A_end=A(end,:

),%如果取A(N,:

)出错,则改取A的最后一行。

lasterr%显示出错原因

A_end=

492

Indexexceedsmatrixdimensions.

第二章符号数学工具(SymbolicMathToolbox)

第1节符号表达式

●符号表达式是代表数字、函数、算子和变量的MATLAB字符串,或字符串数组。

不要求变量有预先确定的值,符号方程式是含有等号的符号表达式。

如表2.1所列。

表2.1

符号表达式

在MATLAB中的表示

1/(2*x^n)'

y='

1/sqrt(2*x)'

cos(x^2)-sin(2*x)'

M=sym('

[a,b;

c,d]'

f=int('

x^3/sqrt(1-x)'

,'

a'

b'

注意:

加单引号’’表示是一个符号表达式而不是数字表达式。

●符号函数:

让用户操作上述符号表达式的方法和函数,比如:

>

diff('

cos(x)'

)%differentiatecos(x)withrespecttox

ans=

-sin(x)

M=sym('

[a,b;

)%createasymbolicmatrixM

M=

[a,b]

[c,d]

1.建立符号数组时,最好用上函数sym

2.许多符号函数可以自动将字符转变为符号表达式。

例如diffcos(x)也可以,

diffx^2+3*x+5%theargumentisequivalentto'

x^2+3*x+5'

●符号变量是符号表达式中的变量,如:

’x+3*y+z’中的x,y,z。

●独立变量是当符号表达式中含有多于一个的变量时,只有一个变量是独立变量。

缺省的独立变量是x,如果没有x,则选择最靠近x的作为独立变量。

如表达式'

1/(5+cos(x))'

中是'

x'

在'

3*y+z'

y'

a+sin(t)'

是'

t'

,而表达式'

sin(pi/4)-cos(3/5)'

是一个符号常数无符号变量。

可利用函数symvar询问MATLAB在符号表达式中哪一个变量它认为是独立变量(系统找不到一个独立变量,便假定无独立变量并返回x)。

symvar('

a*x+y*)%findthedefaultsymbolicvariable

x

a*t+s/(u+3)'

)%uistheclosestto'

u

sin(omega)'

)%'

omega'

isnotasingleecharacter。

3*i+4*j'

)%iandjareequeltosqrt(-1)

指定独立变量:

x^n'

)%differentiatewithrespecttothedefaultvariable'

x^n*n/x

n'

)%differentiatex^nwithrespectto'

x^n*log(x)

)%differentiateusingthedefaultvariables(x)

0

)%specifytheindependentvariable

cos(omega)

第2节符号表达式运算(目的:

更方便的构造符号表达式)

标准代数运算:

symadd、symsub、symlnul、symdiv:

分别为加、减、乘、除两个表达式

sympow:

将一个表达式上升为另一个表达式的幂次

给定两个函数

f='

2*x^2+3*x-5'

%definethesymbolicexpression

f=

2*x^2+3*x-5

g='

x^2-x+7'

g=

x^2-x+7

symadd(f,g)%findanexpressionforf+g

ans=

3*x^2+2*x+2

symsub(f,g)%findanexpressionforf-g

x^2+4*x-12

symmul(f,g)%findanexpressionforf*g

(2*x^2+3*x-5)*(x^2-x+7)

symdiv(f,g)%findanexpressionforf/g

(2*x^2+3*x-5)/(x^2-x+7)

sympow(f,'

3*x'

)%findanexpressionfor

(2*x^2+3*x-5)^(3*x)

联接运算:

symop:

取由逗号隔开的、多至16个参量。

各个参量可为符号表达式、数值或算子('

+'

、'

-'

*'

/'

^'

('

或'

)'

),然后symop可将参量联接起来,返回最后所得的表达式.

cos(x)'

%createanexpression

cos(x)

sin(2*x)'

%createanotherexpression

sin(2*x)

symop(f,'

/',g,'

+'

,3)%combinethem

cos(x)/sin(2*x)+3

高级运算:

compose:

把f(x)和g(x)复合成f(g(x));

finverse:

求函数的逆函数;

symsum:

求表达式的序列和。

●compose

给定表达式

symsxyuv

f=1/(1+x^2);

g=sin(y);

h=1/(1+u^2);

k=sin(v);

%createthefourexpression

compose(f,g)%findanexpressionforf(g(x))

1/(1+sin(y)^2)

compose(g,f)%findanexpressionforg(f(x))

sin(1/(1+x^2))

用于含有不同独立变量的函数表达式:

compose(h,k,'

u'

,'

v'

)%givenh(u),k(v),find(k(v))

compose(h,k)%结果一样

1/(1+sin(v)^2)

●finverse

表达式譬如f(x)的函数逆g(x),满足g(f(x))=x。

例如,

的函数逆是ln(x),因为ln(

)=x。

sin(x)的函数逆是arcsin(x),函数

的函数逆是arcsin

函数finverse返回表达式的函数逆。

如果解不是唯一就给出警告。

symsxabcdz

finverse(1/x)%theinverseof1/xis1/xsince'

1/(1/x)=x'

1/x

finverse(x^2)%g(x^2)=xhasmorethanonesolution

Warning:

finverse(x^2)isnotunique

x^(1/2)

finverse(a*x+b)%findthesolutionto'

g(f(x))=x'

-(b-x)/a

finverse(a*b+c*d-a*z,'

)%findthesolutionto'

g(f(a))=a'

-(c*d-a)/(b-z)

●symsum

求表达式的序列和有四种形式:

symsum(f)返回

symsum(f,'

s'

)返回

symsun(f,a,b)返回

symsun(f,'

,a,b)返回

1.

,它应返回:

symsnx%一定要定义符号变量,即使是x

symsum(x^2)

1/3*x^3-1/2*x^2+1/6*x

2.

,它应返回

symsum((2*n-1)^2,1,n)

11/3*n+8/3-4*(n+1)^2+4/3*(n+1)^3

3.

,返回应是

symsn

symsum(1/(2*n-1)^2,1,inf)

1/8*pi^2

变量替换:

subs将某个符号变量用另一个符号变量来表示。

格式:

subs(f,old,new)如:

a*x^2+b*x+c'

%createafunctionf(x)

a*x^2+b*x+c

subs(f,'

x'

s'

)%substitute'

for'

intheexpressionf

a*s^2+b*s+c

a'

alpha'

alpha'

inf

alpha*x^2+b*x+c

求符号表达式的函数值

为了得到数字,需要使用函数eval来转换字符串。

symsx

f=symsum(x^2)

x=2

eval(f)

第3节微积分(Calculus)函数

微分和积分广泛地用在许多工程学科,这部分的主要函数有:

diff():

Differ

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

当前位置:首页 > 自然科学 > 天文地理

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

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