輸入輸出-暫停-switch_第1頁
輸入輸出-暫停-switch_第2頁
輸入輸出-暫停-switch_第3頁
輸入輸出-暫停-switch_第4頁
輸入輸出-暫停-switch_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Matlab

編程入門(一)Matlab編程入門

Matlab

編程簡介

Matlab作為一種廣泛應用于科學計算的工具軟件,不僅具有強大的數值計算、符號計算、矩陣運算能力和豐富的繪圖功能,同時也具有和C、FORTRAN

等高級語言一樣進行程序設計。在Matlab

程序設計中,可以充分利用Matlab數據結構的特點,提高編程效率。利用Matlab

的程序控制功能,可以將有關Matlab

命令編成程序存儲在一個文件中(M

文件),然后在命令窗口中運行該文件,Matlab

就會自動依次執行文件中的命令,直到全部命令執行完畢。用Matlab語言編寫的程序稱為M文件。

M文件是由若干Matlab命令組合在一起構成的,它可以完成某些操作,也可以實現某種算法。事實上,Matlab

提供的內部函數以及各種工具箱,都是利用Matlab

語言開發的M文件。用戶也可以結合自己的工作需要,開發自己的程序或工具箱。

M文件根據調用方式的不同可以分為兩類:

Script:腳本文件/命令文件沒有輸入參數,也不返回輸出參數,也稱為腳本文件。

Function:函數文件可以輸入參數,也可返回輸出參數。

M文件

M

文件以.m

為擴展名。命令文件

對于一些比較簡單的問題,在指令窗中直接輸入指令計算。

對于復雜計算,采用命令文件最為合適。MATLAB只是按文件所寫的指令執行。

命令文件的特點是:命令文件的構成比較簡單,只是一串按用戶意圖排列而成的MATLAB指令集合。命令文件運行后,所產生的所有變量都駐留在MATLAB基本工作空間(Baseworkspace)中,而且,所產生的所有變量均為全局變量,只要用戶不使用清除指令(clear),MATLAB指令窗不關閉,這些變量將一直保存在基本工作空間中。函數文件

與腳本文件不同,函數文件猶如一個“黑箱”,把一些數據送進并經加工處理,再把結果送出來。MATLAB提供的函數指令大部分都是由函數文件定義的。

函數文件的特點是:

從形式上看,與腳本文件不同,函數文件的笫一行總是以“function”引導的“函數申明行”。從運行上看,與腳本文件運行不同,每當函數文件運行,MATLAB就會專門為它開辟一個臨時工作空間,稱為函數工作空間(Functionworkspace)。當執行文件最后一條指令時,就結束該函數文件的運行,同時該臨時函數空間及其所有的中間變量就立即被清除。MATLAB允許使用比“標稱數目”較少的輸入輸出變量,實現對函數的調用。

M

文件是一個文本文件,可以用任何文本編輯器來建立和編輯,通常使用Matlab

自帶的M

文件編輯器。M文件的建立與打開新建一個M文件菜單操作(FileNewM-File

)命令操作

(edit

M文件名)命令按鈕

(

快捷鍵

)打開已有的M文件菜單操作

(FileOpen

)命令操作(edit

M文件名)命令按鈕

(

快捷鍵

)雙擊M

文件在命令窗口中輸入f2cs,即可執行該M

文件。例:編寫一個命令文件將f轉化為c命令文件舉例clear;%清除當前工作空間中的變量f=input('Pleaseinputf:');c=5*(f-32)/9;fprintf('cis%g\n',c);新建一個M

文件

f2cs.m,內容如下:腳本文件運行后,文件中所產生的所有變量都駐留在Matlab當前工作空間,可以用whos

查看。關系運算<小于<=小于等于>大于>=大于等于==等于~=不等于比較大小,如果結論是真則返回1,否則返回0注意==與=

的區別關系操作符能用來比較兩個標量,或兩個同樣大小的數組,或用來比較一個數組和一個標量關系運算符關系運算符的運算法則為:(1)當兩個比較量是標量時,直接比較兩數的大小。若關系成立,關系表達式結果為1,否則為0。(2)當參與比較的量是兩個維數相同的矩陣時,比較是對兩矩陣相同位置的元素按標量關系運算規則逐個進行,并給出元素比較結果。最終的關系運算的結果是一個維數與原矩陣相同的矩陣,它的元素由0或1組成。

(3)當參與比較的一個是標量,而另一個是矩陣時,則把標量與矩陣的每一個元素按標量關系運算規則逐個比較,并給出元素比較結果。最終的關系運算的結果是一個維數與原矩陣相同的矩陣,它的元素由0或1組成。關系運算例:關系運算舉例>>

2+2==4>>

2>3>>

A=[135;206];>>

B=[310;246];>>

A>=B>>

x=[50;42];>>

x<4例:

產生5階隨機方陣A,其元素為[10,90]區間的隨機整數,然后判斷A的元素是否能被3整除。解:

(1)生成5階隨機方陣A。

A=round((90-10)*rand(5)+10)

(2)判斷A的元素是否可以被3整除。

P=rem(A,3)==0

其中,rem(A,3)是矩陣A的每個元素除以3的余數矩陣。此時,0被擴展為與A同維數的零矩陣,P是進行等于(==)比較的結果矩陣。&與|或~非xor(x,y)異或邏輯運算邏輯運算符&&與(Short-circuitAND)||或(Short-circuitOR)A

&

B

等價于and(A,B)A

|

B

等價于or(A,B)

~

A

等價于not(A)運算對象與或非異或ABA&BA|B~AXor(A,B)000010010111100101111100邏輯運算表all(x)

如果向量X

中所有元素都非零,則返回1,

否則返回0若x為矩陣,則any

和all

按列運算,返回一個0-1向量邏輯運算相關函數any(x)如果向量X

中存在非零元素,則返回1,

否則返回0isfinite元素為有限值,返回真值1isinf元素為無窮大,返回真值1isnan元素為不定值,返回真值1isreal參量無虛部,返回真值1isstr參量為一個字符串,返回真值1isempty參量為空,返回真值1一些測試函數括號冪,點冪正號,符號,邏輯非乘,除,點乘,點除加,減冒號運算關系運算&|&&||運算優先級高低程序控制結構有三種:順序結構、選擇結構和循環結構。任何復雜的程序都由這三種基本結構組成。順序結構M文件控制流按排列順序依次執行各條語句,直到程序的最后。這是最簡單的一種程序結構,一般涉及數據的輸入輸出、數據的計算或處理等。例:A=input('PleaseinputA:')數據的輸入:inputA=input(提示信息)其中提示信息為字符串,該命令要求用戶輸入A

的值(可以是數或字符串)數據輸入inputA=input(提示信息,'s')注:此時輸入的字符串不要加單引號!如果是輸入字符串,也可以使用下面的方法name=input('What''syourname?','s')例:disp(X)輸出變量X的值,可以是數值矩陣或字符串>>

B=[123;456;789];>>

disp(B)數據輸出disp數據的輸出:disp>>

A='Hello,Tom!';>>

disp(A)例:數據輸出fprintffprintf(fid,format,variables)按指定的格式將變量的值輸出到指定的文件數據的輸出:fprintf

fid

為文件句柄,若缺省,則將變量的值輸出到屏幕上

format

用來指定數據輸出時采用的格式,常見的有%d(整數)%e(實數:采用科學計數法形式)%f(實數:采用浮點數形式)%g(由系統自動選取上述兩種格式之一)

%s(輸出字符串)

format

中還可以使用一些特殊格式,如:\n

(換行)\b

(退格)

\\

(反斜桿)

%%

(百分號)

數據輸出fprintf>>

a='Hello';b=2.4;c=100*pi;>>

fprintf('a=%s,b=%f,c=%e\n',a,b,c)例:

format

中的輸出格式要與輸出變量一一對應

可以沒有輸出變量>>

fprintf('

TodayisMonday\n')例:pause

程序的暫停:pausepause或

pause(n)若想強行終止程序的運行,可以使用Ctrl+c其中n

是延遲時間,以秒為單位;若缺省,則將暫停程序,直到用戶按任意鍵后繼續

pauseoff

屏蔽程序中所有

pause

的作用

pauseon

打開

pause

的作用選擇結構是根據給定的條件成立或不成立,分別執行不同的語句。Matlab

用于實現選擇結構的語句有if

語句和switch

語句。選擇結構單分支結構ifexpression

(條件)

statements(語句組)endif條件語句ifexpression(條件)

statements1(語句組1)else

statements2(語句組2)end雙分支結構ifexpression1(條件1)

statements1(語句組1)elseifexpression2(條件2)

statements2(語句組2)......

elseifexpressionm(條件m)

statementsm(語句組m)else

statements(語句組)end多分支結構if條件語句例輸入三角形的三條邊,利用海倫公式求面積。

程序:

A=input('請輸入三角形的三條邊:');ifA(1)+A(2)>A(3)&A(1)+A(3)>A(2)&A(2)+A(3)>A(1)

p=(A(1)+A(2)+A(3))/2;s=sqrt(p*(p-A(1))*(p-A(2))*(p-A(3)));disp(s);else

disp('不能構成一個三角形。')end程序示例運行:請輸入三角形的三條邊:[456]9.9216根據表達式的不同取值,分別執行不同的語句。switchexpression(表達式)casevalue1(表達式1)

statement1(語句組1)casevalue2(表達式2)

statement2(語句組2)......casevaluem

(表達式m)

statementm(語句組m)otherwise

statement(語句組)endswitch語句

Matlab首先計算expression的值,然后將它依次與各個case指令后的檢測值進行比較,當比較結果為真時,就執行相應的語句組,然后跳出switch結構。

switch后面的表達式expression的值可以是一個標量或字符串。switch語句

otherwise指令可以不出現。如果所有的比較結果都為假,則執行otherwise后面的語句組,然后跳出switch結構。例

某商場對顧客所購買的商品實行打折銷售,標準如下(商品價格用price來表示):

price<200沒有折扣

200≤price<5003%折扣

500≤price<10005%折扣

1000≤price<25008%折扣

2500≤price<500010%折扣5000≤price14%折扣輸入所售商品的價格,求其實際銷售價格。程序示例

程序如下:price=input('請輸入商品價格');switch

fix(price/100)

case{0,1}%價格小于200rate=0;

case{2,3,4}%價格大于等于200但小于500rate=3/100;

casenum2cell(5:9)%價格大于等于500但小于1000rate=5/100;

casenum2cell(10:24)%價格大于等于1000但小于2500rate=8/100;

casenum2cell(25:49)%價格大于等于2500但小于5000rate=10/100;

otherwise

%價格大于等于5000rate=14/100;endprice=price*(1-rate)%輸出商品實際銷售價格程序示例循環結構是按照給定的條件,重復執行指定的語句。Matlab用于實現循環結構的語句有for語句和while語句循環結構forvariable=expression

statement(循環體)end循環變量

表達式expression

可以是行向量,也可以是矩陣。執行過程是依次將矩陣的各列元素賦給循環變量,然后執行循環體語句,直至各列元素處理完畢。for循環clear;y=0;n=100;fork=1:n

y=y+1/(2*k-1);end例:已

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論