MATLAB程式设计入门篇程式流程控制.ppt
《MATLAB程式设计入门篇程式流程控制.ppt》由会员分享,可在线阅读,更多相关《MATLAB程式设计入门篇程式流程控制.ppt(17页珍藏版)》请在三一办公上搜索。
1、MATLAB 程式設計入門篇程式流程控制,張智星http:/www.cs.nthu.edu.tw/jang清大資工系 多媒體檢索實驗室,16-1 迴圈指令,MATLAB 提供兩種迴圈指令,一種是 for 迴圈(For Loop),另一種是 while 迴圈(While Loop)。for 迴圈的使用語法如下:for 變數=向量,運算式 end其中變數的值會被依次設定為向量的每一個元素值,來執行介於 for和 end 之間的運算式。另一種 for 迴圈的使用語法如下:for變數=矩陣,運算式 end此時變數的值會被依次設定為矩陣的每一個直行,來執行介於 for 和 end 之間的運算式。whil
2、e 迴圈使用語法如下:while 條件式運算式;end,程式流程控制之範例一,下列 for 迴圈會產生一個長度為 6 的調和數列(Harmonic Sequence):範例16-1:forLoop01.mx=zeros(1,6);%變數 x 是一個 16 大小的零矩陣 for i=1:6x(i)=1/i;endx%顯示 xx=1.0000 0.5000 0.3333 0.2500 0.2000 0.1667在上例中,矩陣 x 最初是一個 16 大小的零矩陣,在 for 迴圈中,變數 i 的值依次是 1 到 6,因此矩陣 x 的第 i 個元素的值依次被設為 1/i。我們接著可用分數形式來顯示此數
3、列:format rat%使用分數形式來顯式數值 disp(x)1 1/2 1/3 1/4 1/5 1/6,程式流程控制之範例二,for 迴圈可以是多層或巢狀式(Nested)的,在下例中即產生一個 66 的Hilbert 矩陣 h,其中為於第 i 列、第 j 行的元素為:範例16-2:forLoop02.mh=zeros(6);%變數 x 是一個 66 大小的零矩陣for i=1:6for j=1:6h(i,j)=1/(i+j-1);endendformat rat%使用分數形式來顯式所有數值h%顯示 hh=1 1/2 1/3 1/4 1/5 1/6 1/2 1/3 1/4 1/5 1/6
4、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,程式流程控制之範例三,在下例中,for 迴圈列出先前產生的 Hilbert 矩陣的每一直行的平方和:範例16-3:forLoop01.mformat short%回到預設形式來顯式所有數值for i=hdisp(norm(i)2);%印出每一行的平方和End1.49140.51180.27740.17870.12620.0944在上例中,由於 h 是一個矩陣,因此每一次 i 的值就是矩陣 h
5、 的一直行的內容。,程式流程控制之範例四,若要跳出 for 迴圈,可用 break 指令。例如,若要找出最小的 n 值,滿足 n!10100,可輸入如下:範例16-4:break01.mfor i=1:1000if prod(1:i)1e100fprintf(%g!=%e 1e100n,i,prod(1:i);break;%跳出 for 迴圈endend70!=1.197857e+100 1e100,程式流程控制之範例五,在一個迴圈內若要直接跳至到此迴圈下一回合的執行,可使用 continue 指令。範例16-5:continue01.mx=1-2 3-4 5;posTotal=0;for i
6、=1:length(x)if x(i)0,continue;end%若 x(i)小於零,跳到此迴圈的下一回合posTotal=posTotal+x(i);endposTotal%顯示 posTotal 的值posTotal=9上述範例中,我們計算向量 x 的正元素的總和,因此只要遇到 x(i)是負數,即可使用 continue 指令來直接跳到此迴圈的下一個回合來繼續執行。Continue 指令從MATLAB 6.x 才開始支援,若是使用 MATLAB 5.x,可用 ifthenelse 來達到相同的功能。,程式流程控制之範例六,先前產生調和數列的例子,亦可用 while 迴圈改寫如下:範例16
7、-6:while01.mx=zeros(1,6);i=1;while i=6x(i)=1/i;i=i+1;endx%顯示 xx=1.0000 0.5000 0.3333 0.2500 0.2000 0.1667,程式流程控制之範例七,若要用 while 指令找出最小的 n 值,使得 n!10100,可輸入如下:範例16-7:while02.mn=1;while prod(1:n)1e100n,n,prod(1:n);70!=1.197857e+100 1e100 與前述的 for 迴圈相同,在任何時刻若要跳出 while 迴圈,亦可使用 break 指令;若要跳到下一回合的 while 迴圈,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 程式 设计 入门 流程 控制
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5439243.html