Matlab 第五講I:編程基礎:腳本文件_第1頁
Matlab 第五講I:編程基礎:腳本文件_第2頁
Matlab 第五講I:編程基礎:腳本文件_第3頁
Matlab 第五講I:編程基礎:腳本文件_第4頁
Matlab 第五講I:編程基礎:腳本文件_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

數學軟件Matlab——編程基礎(腳本)1本講主要內容M文件基本運算:算術、關系、邏輯簡單的輸入輸出控制結構:順序、選擇、循環2Matlab

編程入門

Matlab

作為一種廣泛應用于科學計算的工具軟件,不僅具有強大的數值計算能力和豐富的繪圖功能,同時也可以與C、FORTRAN等高級語言一樣進行程序設計利用Matlab

的程序控制功能,將相關Matlab

命令編成程序存儲在一個文件中(M文件),然后在命令窗口中運行該文件,Matlab

就會自動依次執行文件中的命令,直到全部命令執行完畢在Matlab

程序設計中,要充分利用Matlab

數據結構的特點,提高編程效率

Matlab

編程簡介3用Matlab

語言編寫的程序稱為M文件

M文件以.m

為擴展名M文件是由若干Matlab

命令組合在一起構成的,它可以完成某些操作,也可以實現某種算法

M文件分類(根據調用方式的不同)

Script:腳本文件/命令文件

Function:函數文件M文件

M文件介紹可以直接運行的M文件4

M文件的創建的與編輯

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

自帶的M文件編輯器M文件新建一個M文件菜單操作(FileNewM-File

)命令操作(editM文件名)命令按鈕(快捷鍵)打開已有的M文件菜單操作

(FileOpen

)命令操作(editM文件名)命令按鈕

(快捷鍵)雙擊M文件5編程示例u=[0:pi/60:2*pi];v=[0:pi/60:pi];[U,V]=meshgrid(u,v);R=3;

X=R*sin(V).*cos(U);Y=R*sin(V).*sin(U);

Z=R*cos(V);

mesh(X,Y,Z);axisequal;編程方式:新建一個M文件

myprg1.m,內容如下:例:用mesh繪制半徑為3

的球

命令行方式:>>

u=[0:pi/60:2*pi];>>

v=[0:pi/60:pi];>>

[U,V]=meshgrid(u,v);>>

R=3;>>

X=R*sin(V).*cos(U);>>

Y=R*sin(V).*sin(U);>>

Z=R*cos(V);

>>

mesh(X,Y,Z);>>

axisequal;在命令窗口輸入myprg1,即可執行該M文件文件的命名規則與變量相同!6在命令窗口中輸入f2c,即可執行該M文件例:編寫M文件,將華氏溫度轉化為攝氏溫度:編程示例clear;%清除當前工作空間中的所有變量f=input('Pleaseinputf:');c=5*(f-32)/9;fprintf('c=%g\n',c);新建一個M文件

f2c.m,內容如下:

M文件運行所產生的變量都駐留在Matlab

當前工作空間百分號是注釋符

M文件必須在當前工作目錄下才能運行7本講主要內容

M文件基本運算:算術、關系、邏輯

簡單的輸入輸出

控制結構:順序、選擇、循環8關系運算<小于<=小于等于>大于>=大于等于==等于~=不等于比較大小,如果結論是真則返回1,否則返回0注意=

=與=

的區別關系操作符可以比較兩個同樣大小的數組,或用來比較一個數組和一個標量,在后一種情況,標量和數組中的每一個元素相比較,比較結果與數組大小一樣關系運算符9例:關系運算舉例>>

2+2==4>>

2>3>>

A=[135;206];>>

B=[310;246];>>

A>=B>>

x=[50;42];>>

x<410&與(ElementwiseAND)|或(ElementwiseOR)~非xor(x,y)異或邏輯運算邏輯運算符&&與(Short-circuitAND)||或(Short-circuitOR)A

&

B

等價于and(A,B)A

|

B

等價于or(A,B)

~

A

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

中,0表示“假”,非零表示“真”12all(x)

如果向量X

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

否則返回0若x

為矩陣,則any

和all

按列運算,返回一個0-1向量邏輯運算邏輯運算函數:all、anyany(x)如果向量X

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

否則返回013isfinite(x)若x

為有限值,返回真值1isinf(x)若x

為無窮大,返回真值1isnan(x)若x

為不定值,返回真值1isreal(x)若x

無虛部,返回真值1isstr(x)若x

為一個字符串,返回真值1isempty(x)若x

為空,返回真值1一些測試函數>>

isfinite(5)>>

isinf(5)測試函數14括號冪,點冪正號,負號,邏輯非乘,除,點乘,點除加,減冒號運算關系運算&|&&||運算優先級高低15本講主要內容

M文件

基本運算:算術、關系、邏輯簡單的輸入輸出

控制結構:順序、選擇、循環16例:A=input('PleaseinputA:')數據的輸入:inputA=input(提示信息)其中提示信息為字符串,該命令要求用戶輸入A

的值(可以是數或字符串)inputname=input('What''syourname?')例:

輸入字符串時必須帶單引號單引號的輸出:兩個連續的單引號17disp(X)輸出變量X

的值,X可以是數值矩陣或字符串一次只能輸出一個變量>>

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

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

A='Hello,Tom!';>>

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

fid

為文件句柄,若缺省,則輸出到屏幕上

format

用來指定數據輸出時采用的格式,包含:

普通字符串、格式字符串、轉義字符%d(整數

)%e(實數:科學計數法形式

)%f(實數:小數形式)%g(由系統自動選取上述兩種格式之一)

%s(輸出字符串)

\n

(換行)

\t

(制表符)

\b

(退格)

\\

(反斜桿)

%%

(百分號)19fprintf>>

a='Hello';>>

b=2.4;>>

c=100*pi;>>

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

format

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

可以沒有輸出變量>>

fprintf('

TodayisMonday\n')例:20本講主要內容

M文件

基本運算:算術、關系、邏輯

簡單的輸入輸出控制結構:順序、選擇、循環21程序控制結構有三種:

順序結構、選擇結構和循環結構

任何復雜的程序都由這三種基本結構組成M文件控制流按排列順序依次執行各條語句,直到程序的最后這是最簡單的一種程序結構,一般涉及數據的輸入輸出、數據的計算或處理等順序結構22選擇結構選擇結構根據給定的條件成立或不成立,分別執行不同的語句選擇結構的實現

if語句

switch語句23單分支結構if條件表達式

語句組endif條件語句if條件表達式

語句組1else

語句組2end雙分支結構24if條件表達式1

語句組1elseif

條件表達式2

語句組2......

elseif

條件表達式m

語句組melse

語句組end多分支結構if條件語句25根據表達式的不同取值,分別執行不同的語句switch表達式

case表達式1

語句組1case表達式2

語句組2......case表達式m

語句組motherwise

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

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

otherwise指令可以不出現。如果所有的比較結果都為假,則執行otherwise后面的語句組。26循環結構循環結構根據給定的條件,重復執行指定的語句循環結構的實現

for語句

while語句27for循環變量

=

取值列表

循環體end

取值列表

通常是一個向量將取值列表中的值依次賦給循環變量,直到全部取完,

循環結束for循環不要在循環體內改變循環變量的值為了提高代碼的運行效率,應盡可能提高代碼的向量化程度28for循環clear;y=0;n=100;fork=1:n

y=y+1/(2*k-1);end例:已知,當n=100時,求y的值例:計算s=1+3+10-28+30+50-12-8clear;s=0;x=[1,3,10,-28,30,50,-12,-8];fork=x

s=s+k;end29循環語句可以嵌套使用如果預先知道循環的次數,可采用for循環;

如果預先無法確定循環次數,則可使用while循環。while循環while條件表達式

循環體end當條件表達式的值為真(非0)時,執行循環體語句數論中的一個有趣問題:3n+1

問題:任取一個正整數,如果是偶數,用2除,如果是奇數,用3乘再加1,反復這個過程,直到所得到的數為1。問:是否存在使該過程永不中止的整數?

(example01.m)例:30while

1

n=input('Pleaseentern(nonpositivequit):');

if

n<=0,

break;end

nt=n;%將n的初始值記錄下來

while

n>1

if

mod(n,2)==0

n=n/2;

else

n=3*n+1;

end

fprintf('n=%d\n',n);

end

fprintf('n=%disnotweneed!\n',nt);end編程示例31這個例子給出了計算eps

的一種方法。這里我們用大寫EPS,因此系統中eps

的值不會被覆蓋。當EPS=eps

時,條件仍成立;而當EPS=eps/2

時,條件為假,退出循環,所以最后應有EPS=eps/2。k

用來記錄循環次數。計算Matlab

中eps

值(example02.m)while編程示例k=0;EPS=1;while(1+EPS)>1EPS=EPS/2;k=k+1;end例:32

break

continue

break

語句用于終止循環的執行,即跳出最內層循環

continue

語句用于結束本次循環,進行下一次循環

break

和continue

一般與if

語句配合使用其它流控制語句

return

return

語句用于退出正在運行的腳本或函數,通常用在函數文件中33pause

暫停:pausepause或

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

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

pauseoff

屏蔽程序中所有pause的作用

pauseon

打開pause的作用34首先由計算機隨機產生一個[1,100]之間的一個整數,然后由

溫馨提示

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

評論

0/150

提交評論