欢迎您访问辣妈网

Matlab中的重复命令

2013-3-22 编辑:admin 阅读次数:
  导读:最简单的重复命令是for?圈(for-loop),其基本形式为:?? for 变数 = 矩阵;?? 运算式;?? end? 其中变数的值会被依次设定为矩阵的每一行,来执行介於for和end之间的运算式。因此,若无意外情况,运算式执行的次数会等於矩阵的行数。? 举例来说,下列命令会产生一个长度为...
最简单的重复命令是for?圈(for-loop),其基本形式为:??
for 变数 = 矩阵;??
运算式;??
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的值依次是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等命令来预先配置所需的记忆体(即矩阵)大小。?
?br /> 在下例中,for?圈列出先前产生的Hilbert矩阵的每一行的平方和:??
for i = h,?
disp(norm(i)^2); % 印出每一行的平方和?
end?
?br /> 1299/871?
282/551??
650/2343?
524/2933?
559/4431?
831/8801?
在上例中,每一次i的值就是矩阵h的一行,所以写出来的命令特别简洁。?
令一个常用到的重复命令是while?圈,其基本形式为:?
while 条件式;?
运算式;?
end?
也就是说,只要条件示成立,运算式就会一再被执行。例如先前产生调和数列的例子,我们可用while?圈改写如下:??
x = zeros(1,6); % x是一个16的零矩阵?
i = 1;?
while i <= 6,??
x(i) = 1/i;??
i = i+1;??
end?
format short

本文仅代表作者个人观点,不代表本网站立场,如有侵权,请您告知,我们将及时处理。

联系我们 | 广告服务 | 诚聘英才 | 友情链接 | 版权声明 | 关于我们 | 网站地图
辣妈网 - 时尚潮流辣妈必逛的育儿网站 - 凯娜科技
辣妈网 时尚潮流辣妈必逛的育儿网站 服务QQ:790646582 e-mail:zk8312@163.com
Copyright @ 辣妈网 2014 All Rights Reserved | 吉ICP备14005127号-2
本站部分资源来自网友上传,如果无意之中侵犯了您的版权,请联系本站,本站将在3个工作日内删除。