matlab循环结构
生活随笔
收集整理的這篇文章主要介紹了
matlab循环结构
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2.3? 循環(huán)結(jié)構(gòu)
1.for語句
for語句的格式為:
for 循環(huán)變量=表達式1:表達式2:表達式3
??????? 循環(huán)體語句
??? end
其中表達式1的值為循環(huán)變量的初值,表達式2的值為步長,表達式3的值為循環(huán)變量的終值。步長為1時,表達式2可以省略。
???? 在實際MATLAB編程中,采用循環(huán)語句會降低其執(zhí)行速度,所以前面的程序通常由下面的程序來代替:
n=100;
i=1:2:2*n-1;
y=sum(1./i);
y
?
for語句更一般的格式為:
??? for 循環(huán)變量=矩陣表達式
?????? 循環(huán)體語句
??? end
??? 執(zhí)行過程是依次將矩陣的各列元素賦給循環(huán)變量,然后執(zhí)行循環(huán)體語句,直至各列元素處理完畢。
?
??? 例10? 寫出下列程序的執(zhí)行結(jié)果。
??? s=0;
??? a=[12,13,14;15,16,17;18,19,20;21,22,23];
??? for k=a
?????? s=s+k;
??? end
??? disp(s');
?
2.while語句
??? while語句的一般格式為:
??? while (條件)
???????? 循環(huán)體語句
??? end
??? 其執(zhí)行過程為:若條件成立,則執(zhí)行循環(huán)體語句,執(zhí)行后再判斷條件是否成立,如果不成立則跳出循環(huán)。
?
??? 例11? 從鍵盤輸入若干個數(shù),當(dāng)輸入0時結(jié)束輸入,求這些數(shù)的平均值和它們之和。
程序如下:
sum=0;
cnt=0;
val=input('Enter a number (end in 0):');
while (val~=0)
???? sum=sum+val;
???? cnt=cnt+1;
???? val=input('Enter a number (end in 0):');
end
if (cnt > 0)
??? sum
??? mean=sum/cnt
end
?3.break語句和continue語句
??? 與循環(huán)結(jié)構(gòu)相關(guān)的語句還有break語句和continue語句。它們一般與if語句配合使用。
break語句用于終止循環(huán)的執(zhí)行。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時,程序?qū)⑻鲅h(huán),繼續(xù)執(zhí)行循環(huán)語句的下一語句。
continue語句控制跳過循環(huán)體中的某些語句。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時,程序?qū)⑻^循環(huán)體中所有剩下的語句,繼續(xù)下一次循環(huán)。
?
例12? 求[100,200]之間第一個能被21整除的整數(shù)。
程序如下:
for n=100:200
if rem(n,21)~=0
????? continue
end
break
end
n
?4.循環(huán)的嵌套
??? 如果一個循環(huán)結(jié)構(gòu)的循環(huán)體又包括一個循環(huán)結(jié)構(gòu),就稱為循環(huán)的嵌套,或稱為多重循環(huán)結(jié)構(gòu)。
??? 例13? 若一個數(shù)等于它的各個真因子之和,則稱該數(shù)為完數(shù),如6=1+2+3,所以6是完數(shù)。求[1,500]之間的全部完數(shù)。
for m=1:500
s=0;
for k=1:m/2
if rem(m,k)==0
s=s+k;
end
end
if m==s
??? disp(m);
end
end
總結(jié)
以上是生活随笔為你收集整理的matlab循环结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab基本运算与函数
- 下一篇: matlab选择结构