MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx

上传人:b****4 文档编号:8244329 上传时间:2023-05-10 格式:DOCX 页数:16 大小:24.84KB
下载 相关 举报
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第1页
第1页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第2页
第2页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第3页
第3页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第4页
第4页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第5页
第5页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第6页
第6页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第7页
第7页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第8页
第8页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第9页
第9页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第10页
第10页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第11页
第11页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第12页
第12页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第13页
第13页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第14页
第14页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第15页
第15页 / 共16页
MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx

《MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。

MATLAB入门教程1MATLAB的基本知识Word格式文档下载.docx

复数z的共轭复数

round(x):

四舍五入至最近整数

fix(x):

无论正负,舍去小数至最近整数

floor(x):

地板函数,即舍去正小数至最近整数

ceil(x):

天花板函数,即加入正小数至最近整数

rat(x):

将实数x化为分数表示

rats(x):

将实数x化为多项分数展开

sign(x):

符号函数(Signumfunction)。

当x<

0时,sign(x)=-1;

当x=0时,sign(x)=0;

当x>

0时,sign(x)=1。

小整理:

MATLAB常用的三角函数

sin(x):

正弦函数

cos(x):

馀弦函数

tan(x):

正切函数

asin(x):

反正弦函数

acos(x):

反馀弦函数

atan(x):

反正切函数

atan2(x,y):

四象限的反正切函数

sinh(x):

超越正弦函数

cosh(x):

超越馀弦函数

tanh(x):

超越正切函数

asinh(x):

反超越正弦函数

acosh(x):

反超越馀弦函数

atanh(x):

反超越正切函数 

变数也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(Rowvector)运算:

x=[1352];

y=2*x+1 

y=37115 

变数命名的规则 

1.第一个字母必须是英文字母2.字母间不可留空格3.最多只能有19个字母,MATLAB会忽略多馀字母 

 

我们可以随意更改、增加或删除向量的元素:

y(3)=2%更改第三个元素 

y=3725 

y(6)=10%加入第六个元素 

y=3725010 

y(4)=[]%删除第四个元素, 

y=372010 

在上例中,MATLAB会忽略所有在百分比符号(%)之後的文字,因此百分比之後的文字均可视为程式的注解(Comments)。

MATLAB亦可取出向量的一个元素或一部份来做运算:

x

(2)*3+y(4)%取出x的第二个元素和y的第四个元素来做运算 

ans=9 

y(2:

4)-1%取出y的第二至第四个元素来做运算 

ans=61-1 

在上例中,2:

4代表一个由2、3、4组成的向量

若对MATLAB函数用法有疑问,可随时使用help来寻求线上支援(on-linehelp):

helplinspace 

MATLAB的查询命令

help:

用来查询已知命令的用法。

例如已知inv是用来计算反矩阵,键入helpinv即可得知有关inv命令的用法。

(键入helphelp则显示help的用法,请试看看!

)lookfor:

用来寻找未知的命令。

例如要寻找计算反矩阵的命令,可键入lookforinverse,MATLAB即会列出所有和关键字inverse相关的指令。

找到所需的命令後,即可用help进一步找出其用法。

(lookfor事实上是对所有在搜寻路径下的M档案进行关键字对第一注解行的比对,详见後叙。

) 

将列向量转置(Transpose)後,即可得到行向量(Columnvector):

z=x'

z=4.0000 

5.2000 

6.4000 

7.6000 

8.8000 

10.0000 

不论是行向量或列向量,我们均可用相同的函数找出其元素个数、最大值、最小值等:

length(z)%z的元素个数 

ans=6 

max(z)%z的最大值 

ans=10 

min(z)%z的最小值 

ans= 

适用於向量的常用函数有:

min(x):

向量x的元素的最小值

max(x):

向量x的元素的最大值

mean(x):

向量x的元素的平均值

median(x):

向量x的元素的中位数

std(x):

向量x的元素的标准差

diff(x):

向量x的相邻元素的差

sort(x):

对向量x的元素进行排序(Sorting)

length(x):

向量x的元素个数

norm(x):

向量x的欧氏(Euclidean)长度

sum(x):

向量x的元素总和

prod(x):

向量x的元素总乘积

cumsum(x):

向量x的累计元素总和

cumprod(x):

向量x的累计元素总乘积

dot(x,y):

向量x和y的内积

cross(x,y):

向量x和y的外积(大部份的向量函数也可适用於矩阵,详见下述。

若要输入矩阵,则必须在每一列结尾加上分号(;

),如下例:

A=[1234;

5678;

9101112];

A= 

1011 

12 

同样地,我们可以对矩阵进行各种处理:

A(2,3)=5%改变位於第二列,第三行的元素值 

B=A(2,1:

3)%取出部份矩阵B 

B=565 

A=[AB'

]%将B转置後以行向量并入A 

A(:

2)=[]%删除第二行(:

代表所有列) 

1112 

A=[A;

4321]%加入第四列 

11 

A([14],:

)=[]%删除第一和第四列(:

代表所有行) 

这几种矩阵处理的方式可以相互叠代运用,产生各种意想不到的效果,就看各位的巧思和创意。

在MATLAB的内部资料结构中,每一个矩阵都是一个以行为主(Column-oriented)的阵列(Array)因此对於矩阵元素的存取,我们可用一维或二维的索引(Index)来定址。

举例来说,在上述矩阵A中,位於第二列、第三行的元素可写为A(2,3)(二维索引)或A(6)(一维索引,即将所有直行进行堆叠後的第六个元素)。

此外,若要重新安排矩阵的形状,可用reshape命令:

B=reshape(A,4,2)%4是新矩阵的列数,2是新矩阵的行数 

B= 

11 

A(:

)就是将矩阵A每一列堆叠起来,成为一个行向量,而这也是MATLAB变数的内部储存方式。

以前例而言,reshape(A,8,1)和A(:

)同样都会产生一个8x1的矩阵。

MATLAB可在同时执行数个命令,只要以逗号或分号将命令隔开:

x=sin(pi/3);

y=x^2;

z=y*10,

z= 

7.5000 

若一个数学运算是太长,可用三个句点将其延伸到下一行:

z=10*sin(pi/3)*... 

sin(pi/3);

若要检视现存於工作空间(Workspace)的变数,可键入who:

who 

Yourvariablesare:

testfilex 

这些是由使用者定义的变数。

若要知道这些变数的详细资料,可键入:

whos 

NameSizeBytesClass 

A2x464doublearray 

B4x264doublearray 

ans1x18doublearray 

x1x18doublearray 

y1x18doublearray 

z1x18doublearray 

Grandtotalis20elementsusing160bytes 

使用clear可以删除工作空间的变数:

clearA 

Undefinedfunctionorvariable'

A'

另外MATLAB有些永久常数(Permanentconstants),虽然在工作空间中看不到,但使用者可直接取用,例如:

pi 

ans=3.1416 

下表即为MATLAB常用到的永久常数。

MATLAB的永久常数i或j:

基本虚数单位

eps:

系统的浮点(Floating-point)精确度

inf:

无限大,例如1/0nan或NaN:

非数值(Notanumber),例如0/0

pi:

圆周率p(=3....)

realmax:

系统所能表示的最大数值 

realmin:

系统所能表示的最小数值

nargin:

函数的输入引数个数

函数的输出引数个数 

1-2、重复命令 

最简单的重复命令是for圈(for-loop),其基本形式为:

for变数=矩阵;

运算式;

end 

其中变数的值会被依次设定为矩阵的每一行,来执行介於for和end之间的运算式。

因此,若无意外情况,运算式执行的次数会等於矩阵的行数。

举例来说,下列命令会产生一个长度为6的调和数列(Harmonicsequence):

x=zeros(1,6);

%x是一个16的零矩阵 

fori=1:

6, 

x(i)=1/i;

end 

在上例中,矩阵x最初是一个16的零矩阵,在for圈中,变数i的值依次是1到6,因此矩阵x的第i个元素的值依次被设为1/i。

我们可用分数来显示此数列:

formatrat%使用分数来表示数值 

disp(x) 

11/21/31/41/51/6 

for圈可以是多层的,下例产生一个16的Hilbert矩阵h,其中为於第i列、第j行的元素为 

h=zeros(6);

forj=1:

h(i,j)=1/(i+j-1);

disp(h) 

1/21/31/41/51/61/7 

1/31/41/51/61/71/8 

1/41/51/61/71/81/9 

1/51/61/71/81/91/10 

1/61/71/81/91/101/11 

预先配置矩阵在上面的例子,我们使用zeros来预先配置(Allocate)了一个适当大小的矩阵。

若不预先配置矩阵,程式仍可执行,但此时MATLAB需要动态地增加(或减小)矩阵的大小,因而降低程式的执行效率。

所以在使用一个矩阵时,若能在事前知道其大小,则最好先使用zeros或ones等命令来预先配置所需的记忆体(即矩阵)大小。

在下例中,for圈列出先前产生的Hilbert矩阵的每一行的平方和:

fori=h, 

disp(norm(i)^2);

%印出每一行的平方和 

1299/871 

282/551 

650/2343 

524/2933 

559/4431 

831/8801 

在上例中,每一次i的值就是矩阵h的一行,所以写出来的命令特别简洁。

令一个常用到的重复命令是while圈,其基本形式为:

while条件式;

也就是说,只要条件示成立,运算式就会一再被执行。

例如先前产生调和数列的例子,我们可用while圈改写如下:

i=1;

whilei<

=6, 

i=i+1;

formatshort

1-3、逻辑命令 

最简单的逻辑命令是if,...,end,其基本形式为:

if条件式;

ifrand(1,1)>

0.5, 

disp('

Givenrandomnumberisgreaterthan0.5.'

);

Givenrandomnumberisgreaterthan0.5.

1-4、集合多个命令於一个M档案 

若要一次执行大量的MATLAB命令,可将这些命令存放於一个副档名为m的档案,并在MATLAB提示号下键入此档案的主档名即可。

此种包含MATLAB命令的档案都以m为副档名,因此通称M档案(M-files)。

例如一个名为test.m的M档案,包含一连串的MATLAB命令,那麽只要直接键入test,即可执行其所包含的命令:

pwd%显示现在的目录 

D:

\MATLAB5\bin 

cdc:

\data\mlbook%进入test.m所在的目录 

typetest.m%显示test.m的内容 

%ThisismyfirsttestM-file. 

%RogerJang,March3,1997 

fprintf('

Startoftest.m!

\n'

3, 

i=%d--->

i^3=%d\n'

i,i^3);

Endoftest.m!

test%执行test.m 

i=1--->

i^3=1 

i=2--->

i^3=8 

i=3--->

i^3=27 

第一注解行(H1helpline)test.m的前两行是注解,可以使程式易於了解与管理。

特别要说明的是,第一注解行通常用来简短说明此M档案的功能,以便lookfor能以关键字比对的方式来找出此M档案。

举例来说,test.m的第一注解行包含test这个字,因此如果键入lookfortest,MATLAB即可列出所有在第一注解行包含test的M档案,因而test.m也会被列名在内。

严格来说,M档案可再细分为命令集(Scripts)及函数(Functions)。

前述的test.m即为命令集,其效用和将命令逐一输入完全一样,因此若在命令集可以直接使用工作空间的变数,而且在命令集中设定的变数,也都在工作空间中看得到。

函数则需要用到输入引数(Inputarguments)和输出引数(Outputarguments)来传递资讯,这就像是C语言的函数,或是FORTRAN语言的副程序(Subroutines)。

举例来说,若要计算一个正整数的阶乘(Factorial),我们可以写一个如下的MATLAB函数并将之存档於fact.m:

functionoutput=fact(n) 

%FACTCalculatefactorialofagivenpositiveinteger. 

output=1;

n, 

output=output*i;

其中fact是函数名,n是输入引数,output是输出引数,而i则是此函数用到的暂时变数。

要使用此函数,直接键入函数名及适当输入引数值即可:

y=fact(5) 

y=120 

(当然,在执行fact之前,你必须先进入fact.m所在的目录。

)在执行fact(5)时,

MATLAB会跳入一个下层的暂时工作空间(Temperaryworkspace),将变数n的值设定为5,然後进行各项函数的内部运算,所有内部运算所产生的变数(包含输入引数n、暂时变数i,以及输出引数output)都存在此暂时工作空间中。

运算完毕後,MATLAB会将最後输出引数output的值设定给上层的变数y,并将清除此暂时工作空间及其所含的所有变数。

换句话说,在呼叫函数时,你只能经由输入引数来控制函数的输入,经由输出引数来得到函数的输出,但所有的暂时变数都会随着函数的结束而消失,你并无法得到它们的值。

有关阶乘函数前面(及後面)用到的阶乘函数只是纯粹用来说明MATLAB的函数观念。

若实际要计算一个正整数n的阶乘(即n!

)时,可直接写成prod(1:

n),或是直接呼叫gamma函数:

gamma(n-1)。

MATLAB的函数也可以是递式的(Recursive),也就是说,一个函数可以呼叫它本身。

举例来说,n!

=n*(n-1)!

,因此前面的阶乘函数可以改成递式的写法:

%FACTCalculatefactorialofagivenpositiveintegerrecursively. 

ifn==1,%Terminatingcondition 

return;

output=n*fact(n-1);

在写一个递函数时,一定要包含结束条件(Terminatingcondition),否则此函数将会一再呼叫自己,永远不会停止,直到电脑的记忆体被耗尽为止。

以上例而言,n==1即满足结束条件,此时我们直接将output设为1,而不再呼叫此函数本身。

1-5、搜寻路径 

在前一节中,test.m所在的目录是d:

\mlbook。

如果不先进入这个目录,MATLAB就找不到你要执行的M档案。

如果希望MATLAB不论在何处都能执行test.m,那麽就必须将d:

\mlbook加入MATLAB的搜寻路径(Searchpath)上。

要检视MATLAB的搜寻路径,键入path即可:

path 

MATLABPATH 

d:

\matlab5\toolbox\matlab\general 

\matlab5\toolbox\matlab\ops 

\matlab5\toolbox\matlab\lang 

\matlab5\toolbox\matlab\elmat 

\matlab5\toolbox\matlab\elfun 

\matlab5\toolbox\matlab\specfun 

\matlab5\toolbox\matlab\matfun 

\matlab5\toolbox\matlab\datafun 

\matlab5\toolbox\matlab\polyfun 

\matlab5\toolbox\matlab\funfun 

\matlab5\toolbox\matlab\sparfun 

\matlab5\toolbox\matlab\graph2d 

\matlab5\toolbox\matlab\graph3d 

\matlab5\toolbox\matlab\specgraph 

\matlab5\toolbox\matlab\graphics 

\matlab5\toolbox\matlab\uitools 

\matlab5\toolbox\matlab\strfun 

\matlab5\toolbox\matlab\iofun 

\matlab5\toolbox\matlab\timefun 

\matlab5\toolbox\matlab\datatypes 

\matlab5\toolbox\matlab\dde 

\matlab5\toolbox\matlab\demos 

\matlab5\toolbox\tour 

\matlab5\toolbox\simulink\simulink 

\matlab5\toolbox\simulink\blocks 

\matlab5\toolbox\simulink\simde

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2