MATLAB教材(3)

2018-11-22 21:36

1-2、重复命令 最简单的重复命令是forfor 变数 = 矩阵; 运算式; end

其中变数的值会被依次设定为矩阵的每一行,来执行介於for和end之间的运算式。因此,若无意外情况,运算式执行的次数会等於矩阵的行数。

举例来说,下列命令会产生一个长度为6的调和数列(Harmonic sequence): x = zeros(1,6); % x是一个16的零矩阵 for i = 1:6, x(i) = 1/i; end

在上例中,矩阵x最初是一个16的零矩阵,在for

圈中,变数i的值依次是

圈(for-loop),其基本形式为:

1到6,因此矩阵x的第i个元素的值依次被设为1/i。我们可用分数来显示此数列:

format rat % 使用分数来表示数值 disp(x)

1 1/2 1/3 1/4 1/5 1/6

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

for j = 1:6, h(i,j) = 1/(i+j-1); end end disp(h)

1 1/2 1/3 1/4 1/5 1/6 1/2 1/3 1/4 1/5 1/6 1/7 1/3 1/4 1/5 1/6 1/7 1/8 1/4 1/5 1/6 1/7 1/8 1/9 1/5 1/6 1/7 1/8 1/9 1/10 1/6 1/7 1/8 1/9 1/10 1/11

小提示:预先配置矩阵 在上面的例子,我们使用zeros来预先配置(Allocate)了一个适当大小的矩阵。若不预先配置矩阵,程式仍可执行,但此时MATLAB需要动态地增加(或减小)矩阵的大小,因而降低程式的执行效率。所以在使用一个矩阵时,若能在事前知道其大小,则最好先使用zeros或ones等命令来预先配置所需的记忆体(即矩阵)大小。

在下例中,forfor i = h,

disp(norm(i)^2); % 印出每一行的平方和 end

圈列出先前产生的Hilbert矩阵的每一行的平方和:

1299/871 282/551 650/2343 524/2933 559/4431 831/8801

在上例中,每一次i的值就是矩阵h的一行,所以写出来的命令特别简洁。 令一个常用到的重复命令是whilewhile 条件式; 运算式; end

也就是说,只要条件示成立,运算式就会一再被执行。例如先前产生调和数列的例子,我们可用while

圈改写如下:

圈,其基本形式为:

x = zeros(1:6); % x是一个16的零矩阵 i = 1; while i <= 6, x(i) = 1/i; i = i+1; end disp(x)

format short

1-3、逻辑命令

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

if rand(1,1) > 0.5,

disp('Given random number is greater than 0.5.'); end

Given random number is greater than 0.5.

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

若要一次执行大量的MATLAB命令,可将这些命令存放於一个副档名为m的档案,并在 MATLAB提示号下键入此档案的主档名即可。此种包含MATLAB命令的档案都以m为副档名,因此通称M档案(M-files)。例如一个名为test.m的M档案,包含一连串的MATLAB命令,那麽只要直接键入test,即可执行其所包含的命令: pwd % 显示现在的目录 ans =

D:\\MATLAB5\\bin

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

type test.m % 显示test.m的内容 % This is my first test M-file. % Roger Jang, March 3, 1997 fprintf('Start of test.m!\\n'); for i = 1:3,

fprintf('i = %d ---> i^3 = %d\\n', i, i^3); end

fprintf('End of test.m!\\n'); test % 执行test.m Start of test.m! i = 1 ---> i^3 = 1 i = 2 ---> i^3 = 8 i = 3 ---> i^3 = 27 End of test.m!

小提示:第一注解行(H1 help line) test.m的前两行是注解,可以使程式易於了解与管理。特别要说明的是,第一注解行通常用来简短说明此M档案的功能,以便lookfor能以关键字比对的方式来找出此M档案。举例来说,test.m的第一注解行包含test这个字,因此如果键入lookfor test,MATLAB即可列出所有在第一注解行包含test的M档案,因而test.m也会被列名在内。 严格来说,M档案可再细分为命令集(Scripts)及函数(Functions)。前述的test.m即为命令集,其效用和将命令逐一输入完全一样,因此若在命令集可以直接使用工作空间的变数,而且在命令集中设定的变数,也都在工作空间中看得到。函数则需要用到输入引数(Input arguments)和输出引数(Output arguments)来传递资讯,这就像是C语言的函数,或是FORTRAN语言的副程


MATLAB教材(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:机关培育和践行社会主义核心价值观主题总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: