Matlab 版 (精华区)

发信人: bage (最近比较烦), 信区: Matlab
标  题: Matlab详细教程(四十五)
发信站: 哈工大紫丁香 (Sun Feb  4 13:05:41 2001), 转信

发信人: finance (淼水), 信区: MathTools
发信站: BBS 水木清华站 (Sun Apr  4 08:14:38 1999) WWW-POST

4.8.1 For 回圈

------------------------------------------------------------------------------
--

for 回圈是用在须重复执行且执行次数有一定的算式,它的结构如下: 

for index = array 

command A 

end 

如果我们要计算一缆车离铁塔的速度 (v),它的速度计算方式与且铁塔的距离 (d)有关,
假设以 10 公尺为判断值,则速度计算分为二个算式: 

 

假设有一个阵列 d 为缆车到铁塔的距离,则以下的for 回圈可计算速对应的速度 

>> for k = 1:length(d) 

if d(k) <= 10 

velocity = 0.425 + 0.00175*d(k)^2; 

else 

velocity = 0.625 + 0.12*d - 0.00025*d(k)^2; 

end 

fprintf('d= %f velocity= %f\n',d(k),velocity) 

end


另外几个例子 

>> for n=1:10 

x(n)=sin(n*pi/10); 

end 

>> disp(x)


>> for n=1:5 

for m=5:-1:1 

A(n,m)=n^2+m^2; 

end 

disp(n) 

end 

>> disp(A)


但是如果可以用阵列或是矩阵运算来取代以for 回圈计算,就应采用前者因为计算速度快
多了。上述的例子可改为 

>> n=1:10; 

>> x=sin(n*pi/10);


使用 for 回圈的规则如下: 

上述的 for 回圈中的指标 (index) 须为是一变数。 
如果 array 代表阵列是空无一物,则回圈不会被执行,例如 k=1:0。 
如果 array 代表阵列是一纯量,则回圈会被执行一次,例如 k=1:1。 
如果 array 代表阵列是一向量,则回圈会被依序的执行,例如 k=1:b, b=[1 3 5]。 
如果 array 代表阵列是一矩阵,则回圈会被逐行依序的执行,例如 k=1:B, B=[1 2; 3 
4]。 
for 完整的语法为: for k = first:increment:last,其中的 first, increment, last
分别为初始值,增量,终止值。而回圈被执行的次数由以下的算式决定: 
floor((last-first)/increment)+1 

如果计算得到的值为负,则回圈不被执行。



------------------------------------------------------------------------------
--
  
上一页 下一页 讲义大纲 
--
行至水穷处,坐看云起时
***********************
菩提本无树,明镜亦非台
本来无一物,何处染尘埃

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bage.bbs@smth.org]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:8.613毫秒