【正文】
當(dāng)增量小于零時(shí),程序?qū)⒃谧兞啃∮诮K止值時(shí)終止 不能在 for循環(huán)體內(nèi)重新對(duì)循環(huán)變量賦值來(lái)終止循環(huán)的執(zhí)行 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 37 MATLAB程序設(shè)計(jì) for循環(huán)結(jié)構(gòu) for n=1:10 x(n)=exp(n/5)+cos(n*pi/5) n=10。10 16。14 13。 for i=a disp(norm(i,1))。 n end for循環(huán)內(nèi)可以嵌套循環(huán) for語(yǔ)句中的變量也可以是任何合法的 MATLAB數(shù)組 for k=A 運(yùn)算指令 end 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 40 MATLAB程序設(shè)計(jì) while語(yǔ)句 while expression (表達(dá)式) mands。 i=0。 sum=sum+i。39。r39。 s=39。 while ~feof(fid) line=fgetl(fid)。 end disp(s) break用于遇到空白行時(shí)退出 while循環(huán) 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 44 MATLAB程序設(shè)計(jì) if、 switch條件分支結(jié)構(gòu) 條件語(yǔ)句分為 if和 switch語(yǔ)句兩種 if,else,else if語(yǔ)句 if用來(lái)檢查邏輯運(yùn)算、邏輯函數(shù)、邏輯變量值等邏輯表達(dá)式的真假,若為真則執(zhí)行接下來(lái)的指令或運(yùn)算 基本語(yǔ)法為 if 邏輯表達(dá)式 執(zhí)行語(yǔ)句 end 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 45 MATLAB程序設(shè)計(jì) if、 switch條件分支結(jié)構(gòu) if語(yǔ)句給向量 a賦值 for i=1:6 a(i)=i。 end end 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 46 MATLAB程序設(shè)計(jì) if、 switch條件分支結(jié)構(gòu) 最常見(jiàn)的條件語(yǔ)句是 ifthenelse,語(yǔ)法如下 if 執(zhí)行語(yǔ)句 1 else 執(zhí)行語(yǔ)句 2 end 當(dāng)邏輯表達(dá)式的值為真時(shí),則執(zhí)行語(yǔ)句 1,否則就執(zhí)行語(yǔ)句 2 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 47 MATLAB程序設(shè)計(jì) if、 switch條件分支結(jié)構(gòu) MATLAB還可以執(zhí)行多向條件 其語(yǔ)法為 if 邏輯表達(dá)式 1 執(zhí)行語(yǔ)句 1; elseif 邏輯表達(dá)式 2 執(zhí)行語(yǔ)句 2; elseif 邏輯表達(dá)式 3 執(zhí)行語(yǔ)句 3; else 執(zhí)行語(yǔ)句 4; end end end 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 48 MATLAB程序設(shè)計(jì) if、 switch條件分支結(jié)構(gòu) if語(yǔ)句求解方程 x=3。 else if x==0 y=x。 end end 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 49 MATLAB程序設(shè)計(jì) switch case語(yǔ)句 如果在一個(gè)程序中,必須針對(duì)某個(gè)變量的不同取值來(lái)做多種不同的執(zhí)行,則通常使用 switch語(yǔ)句 switch expression case value1 statements case value2 statements ………… otherwise statments 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 50 MATLAB程序設(shè)計(jì) switch case語(yǔ)句 var=4。139。2 or 3 or 439。539。something else39。 for i=1:10。 b{i}=79+i。 d{i}=59+i。 Name={39。,39。,39。,39。,39。}。 Rank=cell(1,5)。Name39。Marks39。Rank39。 for i=1:5 switch S(i).Marks case 100 S(i).Rank=39。 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 52 MATLAB程序設(shè)計(jì) switch case語(yǔ)句 case a S(i).Rank=39。 case b S(i).Rank=39。 case c S(i).Rank=39。 otherwise S(i).Rank=39。 end end disp([39。,39。,39。])。 39。 disp([S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank])。 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 53 MATLAB程序設(shè)計(jì) trycatch語(yǔ)句 錯(cuò)誤控制指令提供了捕捉異常的方法, try用來(lái)檢查程序代碼是否產(chǎn)生錯(cuò)誤,一旦錯(cuò)誤發(fā)生, MATLAB就會(huì)立即跳到相應(yīng)的 catch語(yǔ)句中去,對(duì)錯(cuò)誤做相應(yīng)的處理 function matricmultiply(A,B) try X=A*B catch disp39。 end lasterr 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 54 MATLAB程序設(shè)計(jì) trycatch語(yǔ)句 matricmultiply(A,B) 運(yùn)行結(jié)果 **Error multiplying A*B ans = Error using == mtimes Inner matrix dimensions must agree. 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 55 MATLAB程序設(shè)計(jì) 控制程序流的其它常用指令 input keyboard pause return error echo 西南交通大學(xué)摩擦學(xué)研究所 Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY 56 MATLAB程序設(shè)計(jì) 控制程序流的其它常用指令 input