Matlab基本语法教案22258.docx

上传人:b****5 文档编号:7478319 上传时间:2023-01-24 格式:DOCX 页数:13 大小:27.46KB
下载 相关 举报
Matlab基本语法教案22258.docx_第1页
第1页 / 共13页
Matlab基本语法教案22258.docx_第2页
第2页 / 共13页
Matlab基本语法教案22258.docx_第3页
第3页 / 共13页
Matlab基本语法教案22258.docx_第4页
第4页 / 共13页
Matlab基本语法教案22258.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Matlab基本语法教案22258.docx

《Matlab基本语法教案22258.docx》由会员分享,可在线阅读,更多相关《Matlab基本语法教案22258.docx(13页珍藏版)》请在冰豆网上搜索。

Matlab基本语法教案22258.docx

Matlab基本语法教案22258

2.1MATLAB的矩阵、变量与表达式

在MATLAB系统中,只管理着一种对象---矩阵(包括复数矩阵),任何数量在MATLAB中是作为1x1的矩阵来处理的。

一、矩阵的创建:

1.在MATLAB中创建矩阵的原则:

(1)矩阵元素必须写在“[]”内;

(2)矩阵的同一行之间用空格或“,”分隔;

(3)矩阵的行与行之间用分号或回车符分隔;

(4)矩阵的尺寸不必预先定义;

(5)矩阵元素可以是数值、变量、表达式或函数。

2.创建矩阵的四种方法。

(1)在命令窗口直接输入:

如输入:

A=[1,2,3;4,5,6;7,8,9]

则显示:

A=

123

456

789

也可用空格代替逗号,用回车代替分号:

如上例:

A=[123

456

789]

则显示:

A=123

456

789

(2)由M文件创建矩阵:

有时编程需要用M文件创建矩阵。

或者当矩阵尺寸较大时,可以按矩阵的输入方式编辑一个M文件(可用循环程序来做),在命令窗口直接执行该文件,即可将矩阵调入工作空间。

(3)由函数创建矩阵:

对于一些特殊的矩阵,可以利用MATLAB的内部函数或用户自定义函数创建矩阵。

如diag()函数可生成对角阵。

ones(m,n);zeros(m,n)

(4)通过数据文件创建矩阵:

save文件名(其中,文件名是*.mat文件)

load文件名例:

工作目录下有temp.mat文件,可以执行loadtemp

3.复数矩阵表示

(1)复数表示

复数的虚根单位用i,j表示,即:

z=3+4i或z=3+4j.

例如输入z=3+4i输入z=3+4j

得到:

得到:

z=z=

3.0000+4.0000i3.0000+4.0000i

(2)复数矩阵

A=[12;34]+i*[56;78]或者A=[1+5i2+6i;3+7i4+8i],都得到:

A=

1.0000+5.0000i2.0000+6.0000i

3.0000+7.0000i4.0000+8.0000i

二、MATLAB的变量和表达式

1.变量名命名规则

☺可以是字母、数字或下划线,但第一个字符必须是字母。

☺长度<=31

☺分辨大小写的,M和m是两个变量。

☺无须对变量的类型进行说明,当需要使用一个新变量时,只须直接对其赋值即可。

2.表达式则是由运算符、函数调用、变量名以及特殊字符组成的式子。

3.MATLAB中基本的赋值语句为:

(1)形式一:

变量名=表达式

将表达式的结果赋给变量名(表达式的运算结果都是一个矩阵)。

(2)形式二:

表达式

计算表达式的值,将其值赋给MATLAB的永久变量ans。

上面两种形式,当表达式由分号“;”结束时,变量结果不显示。

当表达式由逗号“,”或换行号结束,则将结果显示出来。

注:

1)MATLAB中有几个变量不能被clear清除,称永久变量。

(其他变量名最好不要与此同)。

ans:

当不指明某一语句的计算结果赋给哪个变量时,系统自动将该计算结果赋给ans;

eps:

计算机能产生的绝对值最小的浮点数;

i,j:

虚数单位,即-1的平方根;

inf,Inf:

正无穷大;

nan,NaN:

非数,常产生于0/0等运算;

Pi:

圆周率。

2)如果表达式的值太复杂,一行写不下,可以加上三连点“…”回车,然后接下去再写。

如:

s=1-1/2+1/3-1/4+1/5-1/6+1/7-1/8+1/9-1/10+1/11-1/12;

3)在MATLAB函数调用时,MATLAB还允许有这样的形式,如[m,p]=bode(n,d,w);

4.字符串与字符串变量:

MATLAB可将字符串当作数组或矩阵处理。

在MATLAB中,字符串用单引号括起来,如:

例:

S=‘UseMatlab’

输出结果是:

S=UseMatlab

字符串存储在行向量中,每个元素对应一个字符,向量的值为字符对应的ASCII码值。

2.2MATLAB的初等运算

一、矩阵运算符:

✧A’---矩阵A的转置,如果A是复矩阵,则其运算结果是共轭转置;

✧A+B---矩阵的加运算,

✧A-B---矩阵的减运算,

✧A*B---矩阵相乘,A的列数与B的行数相等,即A和B矩阵维数相容,维数不相容是不可乘的。

如:

A---nxm,B---mxr,若C=A*B,则:

C---nxr。

✧B/A---方程X*A=B的解,即X=B*A-1。

称矩阵的右除。

A\B---方程A*X=B的解,即X=A-1*B。

称矩阵的左除。

矩阵的除法,其意义相当于矩阵的求逆运算。

左除与右除的关系为:

b/a=(a’\b’)’。

✧A^B---矩阵的乘方。

1)A为方阵,B为正整数时,表示矩阵A的B次乘积;

2)B为负整数时,表示矩阵A的逆阵的B次乘积;

3)B为非整数时,如B=n/m,则首先应该将A矩阵自乘n次,然后再对结果开m次方;

4)A、B均为矩阵时无意义。

✧A.*B---矩阵的点乘运算,表示A和B阵的对应元素直接相乘,A和B要有相同的维数。

点运算在MATLAB中起重要的作用,如X是一个向量,则求取X2时不能直接写成X*X,而必须写成X.*X。

✧A.\B,A./B---矩阵的点除运算,表示A和B阵的对应元素直接相除,A和B要有相同的维数。

✧A.^B---矩阵的点乘方,表示要对其元素逐一进行幂运算。

与点乘相似。

二、关系运算符:

MATLAB中提供了6种关系运算符,用于比较两个同维数的矩阵:

•<小于

•<=小于或等于

•>大于

•>=大于或等于

•==等于

•~=不等于

关系运算符可以用于检查矩阵的元素是否满足某些条件。

两个同维数的矩阵比较的结果是与它们同维数的0、1矩阵,1表示结果为真,0表示结果为假。

三、逻辑运算符:

在MATLAB中,逻辑运算符有3种。

•&逻辑与。

当运算双方对应元素都为非零时;结果为1,否则,结果为0。

•|逻辑或。

当运算双方对应元素有一个为非零时;结果为1,否则,结果为0。

•~逻辑非。

当元素的值为0时,结果为1,否则,结果为0。

例:

a=[103;0–16],b=[-100;050.3],计算两矩阵对应元素的逻辑关系。

>>a&b

>>a|b

>>~a

>>~b

ans=

100

011

ans=

101

011

ans=

010

100

ans=

011

100

四、特殊运算符:

在MATLAB中,有一些特殊的符号,具有特殊的意义。

1)在MATLAB的M文件中,可以加入解释行,解释行的标识符为:

“%”,该符号后面的内容将作为注释内容。

2)行分隔符:

“;”用在MATLAB语句后,用它时执行结果不显示,可避免显示一些不感兴趣的结果。

3)冒号运算符“:

”最主要的作用是生成向量。

如:

j:

k---生成向量[j,j+1,j+2,…,k]

j:

i:

k---生成向量[j,j+i,j+2i,j+3i,…,k](j为起始值,i为步距,k为终止值,在仿真中经常用于生成时间向量)

A(:

j)---矩阵A的第j列

A(i,:

)---矩阵A的第i行

A(j:

k)---生成向量A(A为向量时,为A的第j到第k个元素,当A为矩阵时,为A的按列数的第j到第k个元素)

例:

A

=

123

456

789

>>A(2:

4)

ans=

472

A(:

j:

k)---矩阵A的从第j列到第k列的矩阵子块

A(:

[j,k])---矩阵A的第j列和第k列

例:

A=123

456

789

>>A(:

1:

2)

ans=

12

45

78

>>A(:

[1,3])

ans=

13

46

79

4)MATLAB中允许对一个矩阵的单个元素进行赋值,如:

A=123

456

789

当执行A(2,3)=100,则显示:

A=123

45100

789

注意:

矩阵中元素按列存储,上例中对矩阵元素操作也可这样调用A(8)=8

对于一个矩阵中0元素很多,而非0元素很少的情况,可以先形成0矩阵,然后将非0元素输入。

如果给出的行数和列数大于原矩阵范围,则将自动扩展原来的矩阵,并将扩展后未赋值的矩阵元素置为0。

如:

A(4,5)=8

A=

12300

45600

78900

00008

2.3MATLAB语句

一、输入输出语句:

MATLAB提供了一些输入和输出语句,允许用户和计算机之间进行数据交换。

1.INPUT输入函数:

在编程时,如果想随时改变输入参数值,可采用input()函数来进行输入,它的调用格式为:

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

提示信息可以是字符串显示,用它来提示输入的是什么样的数据,如:

>>A=input('EntermatrixA=>')

EntermatrixA=>[123;456;789]

A=

123

456

789

如果在input()函数调用时采用了‘s’选项,则允许用户输入字符串。

如:

>>A=input('EntermatrixA=>','s')

EntermatrixA=>matlab

A=

Matlab

2.DISP输出函数:

MATLAB提供的输出函数主要有disp()函数,它的调用格式为:

disp(A)

其中A既可以为字符串,也可以为矩阵

3.将数值转换成字符串输出:

MATLAB还提供了较实用的字符串处理及转换函数,如:

int2str()函数可以方便地将一个整形数据转换成字符串形式,该函数的调用格式为:

例1:

>>cstr=int2str(i)

例2:

>>Inum=15;

>>disp(['ThevalueofInumis'int2str(Inum),'!

ok'])

ThevalueofInumis15!

ok

注意:

在矩阵中,每一个元素之间要有空格或逗号。

二、循环语句:

MATLAB提供了两种循环方式:

for-end循环和while-end循环。

1.for循环语句:

for循环语句为计数循环语句。

如果要反复执行的一组语句的循环次数是已知的或预定义的,就可以使用for循环语句。

它的基本格式为:

for循环变量=表达式1:

表达式2:

表达式3

循环语句组

end

上面的表达式1表示循环初值,表达式3表示循环终值,表达式2是步长,该式相当于冒号表达式。

当步长为1时,表达式2可省略。

如:

S1=1;

S2=0.1;

S3=10;

forI=S1:

S2:

S3

X(I)=0

end

注:

1)如果表达式3的值<表达式1的值,语句仍是合法的,但MATLAB不执行循环内的语句;

2)for和end必须配对使用;

3)for语句还可以嵌套,但每一个for必须与一个end配对使用。

如:

m=3;

n=4;

fori=1:

m

forj=1:

n

A(i,j)=1/(i+j-1)

end

end

例题:

求的值。

程序为:

mysum=0;

fori=1:

100

mysum=mysum+i;

end

disp(mysum)

2.while循环语句:

while循环语句是条件循环语句,它的作用是在一定的逻辑条件控制下,不断地循环执行一条或一组语句,直到逻辑条件不再满足为止。

适用于循环次数事先不知道的情况。

它的基本结构

while条件式

循环语句组

end

它的执行方式是:

若条件成立,则执行循环体,再判断表达式是否仍然成立,如不成立则跳出循环,向下执行。

如将上例改用while循环,则可写出下列程序:

sum=0;

i=1;

whilei<=100

sum=sum+i;

i=i+1;

end

注:

1)允许多级嵌套;

2)while和end必须配对使用;

3)for形循环和while形循环也允许相互嵌套。

三、条件控制语句:

1.if条件转移语句:

if条件式

条件块语句组

end

或:

if条件式

条件块语句组1

else

条件块语句组2

end

或:

if条件式1

条件块语句组1

elseif条件式2

条件块语句组2

else

条件块语句组3

……

end

2.break语句:

break语句的作用一般是终止循环过程,退出循环体。

常与if语句一起使用。

例:

将上例中给出的问题变成:

求出满足>10000的最小m。

则程序为:

mysum=0;

form=1:

1000

ifmysum>10000,

break;

end

mysum=mysum+m;

end

disp(m)

四、分支语句:

switch语句

switch语句可实现多分支的条件选择,在功能上与if-elseif-elseif-…else结构相似。

switch表达式

case表达式1

语句组1

case表达式2

语句组2

……

case表达式n

语句组n

otherwise

语句组

end

执行过程:

switch后面表达式的值可以是数值变量或字符串变量,通过比较该值与case后面的值来决定执行哪部分。

如与哪一个case的值相同就执行哪一个下面的语句组,如果与所有case的值都不同,则执行otherwise下面的语句组。

Otherwise语句可以省略,如果省略otherwise,所有case都不满足时跳出分支结构。

Switch与end必须配对使用。

例:

如下的程序可以生成一个三对角矩阵:

m=10;

n=10;

fork=1:

m

forl=1:

n

switchabs(k-l)

case0

A(k,l)=1;

case1

A(k,l)=2;

otherwise

A(k,l)=0;

end

end

end

A

程序运行结果为:

A=

1200000000

2120000000

0212000000

0021200000

0002120000

0000212000

0000021200

0000002120

0000000212

0000000021

本次课习题:

计算下列表达式:

1.写出MATLAB命令窗口中的常用命令及功能。

4.MATLAB对变量名称的规定如何?

表达式如何构成?

5.用多种方法输入以下矩阵,并赋值给变量a。

6.计算以下表达式的值[12+5*(7-4)]÷32。

7.已知矩阵,,求以下矩阵运算的结果:

A=

B=

求下列矩阵的结果

(1)A*B

(2)A.*B’(3)A3*B(4)A>B(5)A˜=B(6)A&zero

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

当前位置:首页 > 法律文书 > 辩护词

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

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