




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)學(xué)軟件Matlab——編程基礎(chǔ)(腳本)1本講主要內(nèi)容M文件基本運算:算術(shù)、關(guān)系、邏輯簡單的輸入輸出控制結(jié)構(gòu):順序、選擇、循環(huán)2Matlab
編程入門
Matlab
作為一種廣泛應(yīng)用于科學(xué)計算的工具軟件,不僅具有強大的數(shù)值計算能力和豐富的繪圖功能,同時也可以與C、FORTRAN等高級語言一樣進行程序設(shè)計利用Matlab
的程序控制功能,將相關(guān)Matlab
命令編成程序存儲在一個文件中(M文件),然后在命令窗口中運行該文件,Matlab
就會自動依次執(zhí)行文件中的命令,直到全部命令執(zhí)行完畢在Matlab
程序設(shè)計中,要充分利用Matlab
數(shù)據(jù)結(jié)構(gòu)的特點,提高編程效率
Matlab
編程簡介3用Matlab
語言編寫的程序稱為M文件
M文件以.m
為擴展名M文件是由若干Matlab
命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實現(xiàn)某種算法
M文件分類(根據(jù)調(diào)用方式的不同)
Script:腳本文件/命令文件
Function:函數(shù)文件M文件
M文件介紹可以直接運行的M文件4
M文件的創(chuàng)建的與編輯
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,內(nèi)容如下:例:用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,即可執(zhí)行該M文件文件的命名規(guī)則與變量相同!6在命令窗口中輸入f2c,即可執(zhí)行該M文件例:編寫M文件,將華氏溫度轉(zhuǎn)化為攝氏溫度:編程示例clear;%清除當(dāng)前工作空間中的所有變量f=input('Pleaseinputf:');c=5*(f-32)/9;fprintf('c=%g\n',c);新建一個M文件
f2c.m,內(nèi)容如下:
M文件運行所產(chǎn)生的變量都駐留在Matlab
當(dāng)前工作空間百分號是注釋符
M文件必須在當(dāng)前工作目錄下才能運行7本講主要內(nèi)容
M文件基本運算:算術(shù)、關(guān)系、邏輯
簡單的輸入輸出
控制結(jié)構(gòu):順序、選擇、循環(huán)8關(guān)系運算<小于<=小于等于>大于>=大于等于==等于~=不等于比較大小,如果結(jié)論是真則返回1,否則返回0注意=
=與=
的區(qū)別關(guān)系操作符可以比較兩個同樣大小的數(shù)組,或用來比較一個數(shù)組和一個標量,在后一種情況,標量和數(shù)組中的每一個元素相比較,比較結(jié)果與數(shù)組大小一樣關(guān)系運算符9例:關(guān)系運算舉例>>
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向量邏輯運算邏輯運算函數(shù):all、anyany(x)如果向量X
中存在非零元素,則返回1,
否則返回013isfinite(x)若x
為有限值,返回真值1isinf(x)若x
為無窮大,返回真值1isnan(x)若x
為不定值,返回真值1isreal(x)若x
無虛部,返回真值1isstr(x)若x
為一個字符串,返回真值1isempty(x)若x
為空,返回真值1一些測試函數(shù)>>
isfinite(5)>>
isinf(5)測試函數(shù)14括號冪,點冪正號,負號,邏輯非乘,除,點乘,點除加,減冒號運算關(guān)系運算&|&&||運算優(yōu)先級高低15本講主要內(nèi)容
M文件
基本運算:算術(shù)、關(guān)系、邏輯簡單的輸入輸出
控制結(jié)構(gòu):順序、選擇、循環(huán)16例:A=input('PleaseinputA:')數(shù)據(jù)的輸入:inputA=input(提示信息)其中提示信息為字符串,該命令要求用戶輸入A
的值(可以是數(shù)或字符串)inputname=input('What''syourname?')例:
輸入字符串時必須帶單引號單引號的輸出:兩個連續(xù)的單引號17disp(X)輸出變量X
的值,X可以是數(shù)值矩陣或字符串一次只能輸出一個變量>>
B=[123;456;789];>>
disp(B)disp數(shù)據(jù)的輸出:disp>>
A='Hello,Tom!';>>
disp(A)例:18fprintffprintf(fid,format,variables)數(shù)據(jù)的格式化輸出:fprintf按指定的格式將變量的值輸出到屏幕或指定的文件
fid
為文件句柄,若缺省,則輸出到屏幕上
format
用來指定數(shù)據(jù)輸出時采用的格式,包含:
普通字符串、格式字符串、轉(zhuǎn)義字符%d(整數(shù)
)%e(實數(shù):科學(xué)計數(shù)法形式
)%f(實數(shù):小數(shù)形式)%g(由系統(tǒng)自動選取上述兩種格式之一)
%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
中的格式字符串要與輸出變量一一對應(yīng)
可以沒有輸出變量>>
fprintf('
TodayisMonday\n')例:20本講主要內(nèi)容
M文件
基本運算:算術(shù)、關(guān)系、邏輯
簡單的輸入輸出控制結(jié)構(gòu):順序、選擇、循環(huán)21程序控制結(jié)構(gòu)有三種:
順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)
任何復(fù)雜的程序都由這三種基本結(jié)構(gòu)組成M文件控制流按排列順序依次執(zhí)行各條語句,直到程序的最后這是最簡單的一種程序結(jié)構(gòu),一般涉及數(shù)據(jù)的輸入輸出、數(shù)據(jù)的計算或處理等順序結(jié)構(gòu)22選擇結(jié)構(gòu)選擇結(jié)構(gòu)根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句選擇結(jié)構(gòu)的實現(xiàn)
if語句
switch語句23單分支結(jié)構(gòu)if條件表達式
語句組endif條件語句if條件表達式
語句組1else
語句組2end雙分支結(jié)構(gòu)24if條件表達式1
語句組1elseif
條件表達式2
語句組2......
elseif
條件表達式m
語句組melse
語句組end多分支結(jié)構(gòu)if條件語句25根據(jù)表達式的不同取值,分別執(zhí)行不同的語句switch表達式
case表達式1
語句組1case表達式2
語句組2......case表達式m
語句組motherwise
語句組endswitch語句先計算表達式的值,然后將它依次與各個case指令后表達式的值進行比較,當(dāng)比較結(jié)果為真時,就執(zhí)行相應(yīng)語句組,然后跳出switch結(jié)構(gòu)。
switch后面的表達式的值可以是一個標量或字符串。
otherwise指令可以不出現(xiàn)。如果所有的比較結(jié)果都為假,則執(zhí)行otherwise后面的語句組。26循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)根據(jù)給定的條件,重復(fù)執(zhí)行指定的語句循環(huán)結(jié)構(gòu)的實現(xiàn)
for語句
while語句27for循環(huán)變量
=
取值列表
循環(huán)體end
取值列表
通常是一個向量將取值列表中的值依次賦給循環(huán)變量,直到全部取完,
循環(huán)結(jié)束for循環(huán)不要在循環(huán)體內(nèi)改變循環(huán)變量的值為了提高代碼的運行效率,應(yīng)盡可能提高代碼的向量化程度28for循環(huán)clear;y=0;n=100;fork=1:n
y=y+1/(2*k-1);end例:已知,當(dāng)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循環(huán)語句可以嵌套使用如果預(yù)先知道循環(huán)的次數(shù),可采用for循環(huán);
如果預(yù)先無法確定循環(huán)次數(shù),則可使用while循環(huán)。while循環(huán)while條件表達式
循環(huán)體end當(dāng)條件表達式的值為真(非0)時,執(zhí)行循環(huán)體語句數(shù)論中的一個有趣問題:3n+1
問題:任取一個正整數(shù),如果是偶數(shù),用2除,如果是奇數(shù),用3乘再加1,反復(fù)這個過程,直到所得到的數(shù)為1。問:是否存在使該過程永不中止的整數(shù)?
(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,因此系統(tǒng)中eps
的值不會被覆蓋。當(dāng)EPS=eps
時,條件仍成立;而當(dāng)EPS=eps/2
時,條件為假,退出循環(huán),所以最后應(yīng)有EPS=eps/2。k
用來記錄循環(huán)次數(shù)。計算Matlab
中eps
值(example02.m)while編程示例k=0;EPS=1;while(1+EPS)>1EPS=EPS/2;k=k+1;end例:32
break
和
continue
break
語句用于終止循環(huán)的執(zhí)行,即跳出最內(nèi)層循環(huán)
continue
語句用于結(jié)束本次循環(huán),進行下一次循環(huán)
break
和continue
一般與if
語句配合使用其它流控制語句
return
return
語句用于退出正在運行的腳本或函數(shù),通常用在函數(shù)文件中33pause
暫停:pausepause或
pause(n)若想強行終止正常運行的程序,可以使用Ctrl+c其中n
是暫停的時間,以秒為單位若缺省,則將暫停程序,直到用戶按任意鍵后繼續(xù)
pauseoff
屏蔽程序中所有pause的作用
pauseon
打開pause的作用34首先由計算機隨機產(chǎn)生一個[1,100]之間的一個整數(shù),然后由
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年雪梨膏項目市場調(diào)查研究報告
- 智能游泳監(jiān)測手環(huán)企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 燈光藝術(shù)節(jié)行業(yè)跨境出海戰(zhàn)略研究報告
- 智能溫控?zé)崴髽I(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 智能呼吸頻率監(jiān)測口罩行業(yè)跨境出海戰(zhàn)略研究報告
- 智能垃圾分類識別攝像頭行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 復(fù)方泛影葡胺企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 智能溫度控制系統(tǒng)企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 智能溫控離子夾發(fā)器行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 健身房產(chǎn)品代理合同范例
- 職稱俄語閱讀理解專項訓(xùn)練題(一)
- MOOC 昆曲-江蘇開放大學(xué) 中國大學(xué)慕課答案
- MOOC 電路分析基礎(chǔ)-杭州電子科技大學(xué) 中國大學(xué)慕課答案
- JTG D70-2-2014 公路隧道設(shè)計規(guī)范 第二冊 交通工程與附屬設(shè)施
- 廣汽傳祺M8宗師版說明書
- 數(shù)控車床機器人自動上下料系統(tǒng)設(shè)計
- 當(dāng)代美國幼小銜接政策的研究
- 老年人脊椎疾病的預(yù)防和康復(fù)
- 大學(xué)物理課件57波爾共振實驗
- 2023年工程師pe年終總結(jié)及年后展望
- 中國環(huán)境保護徽
評論
0/150
提交評論