版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章基本語(yǔ)法2.1變量與賦值2.2矩陣的初等運(yùn)算2.3元素群運(yùn)算2.4邏輯判斷及流程控制2.5基本繪圖方法2.6M文件及程序調(diào)試一、M文件簡(jiǎn)介2.6M文件及程序調(diào)試用戶如想靈活應(yīng)用matlab去解決實(shí)際問(wèn)題,充分調(diào)用matlab的科學(xué)技術(shù)資源,就需要編輯m文件包含matlab語(yǔ)言代碼的文件稱為m文件,其擴(kuò)展名為m。編輯m文件可使用各種文本編輯器。Matlab有兩種工作方式:1、交互式命令行操作方式2、M文件的編程工作方式
1、交互式命令行操作方式通常matlab以指令驅(qū)動(dòng)模式工作,即在matlab
窗口下當(dāng)用戶輸入單行指令時(shí),matlab
立即處理這條指令,并顯示結(jié)果,這就是matlab命令行方式。被當(dāng)作‘?dāng)?shù)學(xué)演算紙和圖形顯示器’來(lái)使用。命令行操作時(shí),matlab窗口一般只允許一次執(zhí)行一行上的一個(gè)或幾個(gè)語(yǔ)句。例如:x1=0:10x1=012345678910如:x1=0:10,x2=0:3:11,x3=11.5:-3:0x1=012345678910x2=0369x3=11.50008.50005.50002.5000在matlab窗口輸入數(shù)據(jù)和命令進(jìn)行計(jì)算時(shí),當(dāng)處理復(fù)雜問(wèn)題和大量數(shù)據(jù)時(shí)是不方便的。因此應(yīng)編輯m文件。命令行方式程序可讀性差,而且不能存儲(chǔ),對(duì)于復(fù)雜的問(wèn)題,應(yīng)編寫成能存儲(chǔ)的程序文件。2、M文件的編程工作方式在M文件的編程工作方式,Matlab可以像其他高級(jí)計(jì)算機(jī)語(yǔ)言一樣進(jìn)行程序設(shè)計(jì),即編制一種以.m為擴(kuò)展名的Matlab程序(簡(jiǎn)稱M文件)二、M文件的建立具體的創(chuàng)建方法:在matlab命令窗口點(diǎn)擊file菜單
newm-file2、工具欄的新建按鈕三、m文件的分類
可以存取的M文件—稱命令文件(程序文件、腳本文件)可調(diào)用M文件—稱函數(shù)(function)文件1、程序文件以.m格式進(jìn)行存取,包含一連串的MATLAB指令和必要的注解。與在命令窗口逐行執(zhí)行文件中的所有指令,其結(jié)果是一樣的。沒(méi)有輸入輸出參數(shù)。程序運(yùn)行時(shí)只需在命令窗口中鍵入其名稱即可(1)、用clear,closeall等語(yǔ)句開(kāi)始,清除工作空間原有的變量與圖形,以避免其它已執(zhí)行的程序殘留數(shù)據(jù)對(duì)本程序的影響。(2)、前幾行通常是對(duì)此程序的說(shuō)明。這些注釋行必須以%開(kāi)始,以便計(jì)算機(jī)執(zhí)行時(shí)不予理會(huì)。(注釋部分)(3)、程序的主體如果程序中有全局變量,即在主程序與主程序中共有的變量,應(yīng)在程序中的起始部分注明。語(yǔ)句為:
global變量名(4)、整個(gè)程序按Matlab
標(biāo)示符的要求其文件名,并加上.m后綴。主要特征:%西安電子科技大學(xué)出版社出版陳懷琛編著1999年10月初版,2004年11月第二版%%求fibonacci數(shù)的程序clcclearcloseallR=input('輸入fibonacci數(shù)的最大范圍R='),f=[11];i=1;whilef(i)+f(i+1)<Rf(i+2)=f(i)+f(i+1);i=i+1;endfplot(f)注意:程序中的變量保存在工作空間中。兩大部分:注釋部分、程序部分%求素?cái)?shù)的程序clearcloseallclcN=input('輸入素?cái)?shù)的最大范圍N=');x=2:N;
%列出從2-N的全部自然數(shù)foru=2:sqrt(N)%依次取出除數(shù)(最大到N的平方根)n=find(rem(x,u)==0&x~=u);%找到被U整除且不等于U的數(shù)的序號(hào)
x(n)=[];%去掉該數(shù)
endx%顯示結(jié)果2、函數(shù)文件
(1)函數(shù)定義行(關(guān)鍵字function)function[out1,out2,..]=filename(in1,in2,..)輸入和輸出(返回)的參數(shù)個(gè)數(shù)分別由nargin和nargout兩個(gè)MATLAB保留的變量來(lái)給出。(2)函數(shù)體說(shuō)明及有關(guān)注解以(%)開(kāi)頭,用以說(shuō)明函數(shù)的作用及有關(guān)內(nèi)容如果不希望顯示某段信息,可在它的前面加空行(3)函數(shù)體語(yǔ)句函數(shù)體內(nèi)使用的除返回和輸入變量這些在function語(yǔ)句中直接引用的變量以外的所有變量都是局部變量,即在該函數(shù)返回之后,這些變量會(huì)自動(dòng)在MATLAB的工作空間中清除掉。如果希望這些中間變量成為在整個(gè)程序中都起作用的變量,則可以將它們?cè)O(shè)置為全局變量。
functiony=mean(x)%Mean求平均值,返回x向量所有元素的平均值%對(duì)于矩陣,返回各列平均值的行向量[m,n]=size(x)ifm==1m=nendy=sum(x)/m例如:變量不在工作空間里
matlab用戶可以根據(jù)需要編輯自己的m文件,它們可以像庫(kù)函數(shù)一樣方便的調(diào)用,從而極大地?cái)U(kuò)展了matlab
的能力對(duì)于某一類特殊問(wèn)題,如創(chuàng)建了許多m函數(shù)文件,則可形成新的工具箱。這種用matlab語(yǔ)言創(chuàng)建定義新的matlab函數(shù)的功能,正體現(xiàn)了matlab語(yǔ)言強(qiáng)大的擴(kuò)展功能。內(nèi)置函數(shù)函數(shù)m文件的格式:
function返回變量=函數(shù)名(輸入變量)注釋說(shuō)明語(yǔ)句段程序語(yǔ)句段特定規(guī)則:函數(shù)m文件第一行必須以單詞function作為引導(dǎo)詞,必須遵循如下形式:
function[變量1,變量2]=函數(shù)名(變量1,變量2)m文件的文件名必須是<函數(shù)名>.m。程序中的變量(輸出除外)均為局部變量,不保存在工作空間中。其變量只在函數(shù)運(yùn)行期間有效。局部變量每個(gè)函數(shù)都有自己的局部變量,這些變量存儲(chǔ)在該函數(shù)獨(dú)立的工作區(qū)中,與其他函數(shù)的變量及主工作區(qū)中的變量分開(kāi)存儲(chǔ)。當(dāng)函數(shù)調(diào)用結(jié)束時(shí),這些變量隨之刪除,不保存在內(nèi)存中。并且,除了函數(shù)返回值,該函數(shù)不改變工作區(qū)中其他變量的值。然而腳本文件沒(méi)有獨(dú)立的工作區(qū),當(dāng)通過(guò)命令窗口調(diào)用腳本文件時(shí),腳本文件分享主工作區(qū),當(dāng)函數(shù)調(diào)用腳本文件時(shí),腳本文件分享主調(diào)函數(shù)的工作區(qū)。需要注意的是,如果腳本中改變了工作區(qū)中變量的值,則在腳本文件調(diào)用結(jié)束后,該變量的值發(fā)生改變。在函數(shù)中,變量默認(rèn)為局部變量。全局變量局部變量只在一個(gè)工作區(qū)內(nèi)有效,無(wú)論是函數(shù)工作區(qū)還是MATLAB主工作區(qū)。與局部變量不同,全局變量可以在定義該變量的全部工作區(qū)中有效。當(dāng)在一個(gè)工作區(qū)內(nèi)改變?cè)撟兞康闹禃r(shí),該變量在其他工作區(qū)中的變量同時(shí)改變。任何函數(shù)如果需要使用全局變量,則必須首先聲明,聲明格式為:global變量名1變量名2如果一個(gè)M文件中包含的子函數(shù)需要訪問(wèn)全局變量,則需在子函數(shù)中聲明該變量,如果需要在命令行中訪問(wèn)該變量,則需在命令行中聲明該變量?!纠咳肿兞繎?yīng)用示例先建立函數(shù)文件wadd.m,該函數(shù)將輸入的參數(shù)加權(quán)相加。functionf=wadd(x,y)%addtwovariableglobalALPHABETAf=ALPHA*x+BETA*y;在命令窗口中輸入:
globalALPHABETAALPHA=1;BETA=2;s=wadd(1,2)輸出為:
s=5function[x,d]=root1(a,b,c)
%%a=input('a=');%pause(5)%b=input('b=');%%A='pressanykeytocontinue..';%disp(A)%pause%c=input('c=');
d=b*b-4*a*c;
%disp(A)%pausex=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];
functionfout=charray(a,b,c)ifnargin==1
fout=a;
elseif
nargin==2
fout=a+b;
elseif
nargin==3
fout=(a*b*c)/2;end四、人機(jī)交互命令
★echo指令—用來(lái)控制m文件在執(zhí)行過(guò)程中是否顯示
echoon—打開(kāi)所有命令文件的顯示方式
echooff—關(guān)閉所有命令文件的顯示方式%求素?cái)?shù)的程序N=input('輸入素?cái)?shù)的最大范圍N=');x=2:N;echoon%在命令窗口中顯示執(zhí)行程序
%列出從2-N的全部自然數(shù)foru=2:sqrt(N)%依次取出除數(shù)(最大到N的平方根)n=find(rem(x,u)==0&x~=u);%找到被U整除且不等于U的數(shù)的序號(hào)
x(n)=[];%去掉該數(shù)endechooff%在命令窗口中不顯示執(zhí)行程序x%顯示結(jié)果pause——暫停,等待用戶響應(yīng)
調(diào)用格式:pause(延遲秒數(shù))
注:如果省略延遲時(shí)間,直接使用pause,則將暫停程序,直到用戶按任一鍵后程序繼續(xù)執(zhí)行。
若要強(qiáng)行中止程序的運(yùn)行可使用Ctrl+C命令。a=input('a=');
pause(5)b=input('b=');
A='pressanykeytocontinue..';
disp(A)pausec=input('c=');
d=b*b-4*a*c;
disp(A)pausex=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]keyboard—當(dāng)keyboard在m文件中出現(xiàn)時(shí),它停止文件的執(zhí)行并控制鍵盤,用于修改程序。a=input('a=');
pause(2)b=input('b=');
A='pressanykeytocontinue..';
disp(A)pausec=input('c=');keyboardd=b*b-4*a*c;
disp(A)pausex=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]五、程序的調(diào)試1、matlab的命令文件是比較容易調(diào)試的,因?yàn)镸atlab的查錯(cuò)能力很強(qiáng),再加上工作空間變量的保存和顯示,不需要專
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合伙人技術(shù)入股協(xié)議書(shū)合同
- 大班音樂(lè)《小白船》課件
- 2024年遼寧駕駛員客運(yùn)從業(yè)資格證考試題及答案
- 2024年重慶2024年客運(yùn)從業(yè)資格證考試試題
- 2024【房屋拆除合同范本】建筑拆除合同范本
- 2024職工食堂承包合同范本
- 2024家居工程裝修合同范本
- 2024農(nóng)村水庫(kù)承包合同書(shū)
- 2024項(xiàng)目投資咨詢合同版
- 深圳大學(xué)《游泳俱樂(lè)部》2023-2024學(xué)年第一學(xué)期期末試卷
- 《百團(tuán)大戰(zhàn)》歷史課件
- 銀行涉農(nóng)貸款專項(xiàng)統(tǒng)計(jì)制度講解
- DB31-T 540-2022 重點(diǎn)單位消防安全管理要求
- 兒化音變課件
- 國(guó)家開(kāi)放大學(xué)《傳感器與測(cè)試技術(shù)》實(shí)驗(yàn)參考答案
- 工程造價(jià)司法鑒定實(shí)施方案
- 材料成型工藝基礎(chǔ)習(xí)題答案
- 劇本寫作課件
- 計(jì)算方法第三章函數(shù)逼近與快速傅里葉變換課件
- 五年級(jí)上冊(cè)英語(yǔ)課件-Unit7 At weekends第四課時(shí)|譯林版(三起) (共13張PPT)
- 2022年秋新教材高中英語(yǔ)Unit2SuccessTheImportanceofFailure教案北師大版選擇性必修第一冊(cè)
評(píng)論
0/150
提交評(píng)論