




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2021/8/21第二章第二章 基本語法基本語法2.1 變量與賦值變量與賦值2.2矩陣的初等運算矩陣的初等運算2.3元素群運算元素群運算2.4邏輯判斷及流程控制邏輯判斷及流程控制2.5基本繪圖方法基本繪圖方法2.6M文件及程序調試文件及程序調試2021/8/22一、M文件簡介2.6 M文件及程序調試文件及程序調試 用戶如想靈活應用用戶如想靈活應用matlab去解決實際問題,充分去解決實際問題,充分調用調用matlab的科學技術資源,就需要編輯的科學技術資源,就需要編輯m文件文件 包含包含matlab語言代碼的文件稱為語言代碼的文件稱為m文件,其擴展文件,其擴展名為名為m。 編輯編輯m文件可使用
2、各種文本編輯器。文件可使用各種文本編輯器。2021/8/23Matlab有兩種工作方式:有兩種工作方式:1、交互式命令行操作方式、交互式命令行操作方式2、M文件的編程工作方式文件的編程工作方式 1、交互式命令行操作方式、交互式命令行操作方式 通常通常matlab以指令驅動模式工作,即在以指令驅動模式工作,即在matlab 窗口窗口下當用戶輸入單行指令時,下當用戶輸入單行指令時,matlab 立即處理這條指令,立即處理這條指令,并顯示結果,這就是并顯示結果,這就是matlab命令行方式。被當作命令行方式。被當作數學數學演算紙和圖形顯示器演算紙和圖形顯示器來使用。來使用。 命令行操作時,命令行操作
3、時,matlab窗口一般只允許一次執行一行窗口一般只允許一次執行一行上的一個或幾個語句。上的一個或幾個語句。2021/8/24例如:例如:x1=0:10 x1 = 0 1 2 3 4 5 6 7 8 9 10如:如:x1=0:10,x2=0:3:11,x3=11.5:-3:0 x1 = 0 1 2 3 4 5 6 7 8 9 10 x2 = 0 3 6 9x3 = 11.5000 8.5000 5.5000 2.50002021/8/25 在在matlab窗口輸入數據和命令進行計算時,當處窗口輸入數據和命令進行計算時,當處理復雜問題和大量數據時是不方便的。因此應編理復雜問題和大量數據時是不方便
4、的。因此應編輯輯m文件。文件。 命令行方式程序可讀性差,而且不能存儲,對于命令行方式程序可讀性差,而且不能存儲,對于復雜的問題,應編寫成能存儲的程序文件。復雜的問題,應編寫成能存儲的程序文件。2021/8/262 2、M M文件的編程工作方式文件的編程工作方式 在在M M文件的編程工作方式,文件的編程工作方式,MatlabMatlab可以像其他高級計算可以像其他高級計算機語言一樣進行程序設計,即編制一種以機語言一樣進行程序設計,即編制一種以.m.m為擴展名的為擴展名的MatlabMatlab程序(簡稱程序(簡稱M M文件)文件)2021/8/27二、M文件的建立 具體的創建方法:具體的創建方法
5、:v在在matlab命令窗命令窗 口點擊口點擊file 菜單菜單 new m-file2021/8/282、工具欄的新建按鈕、工具欄的新建按鈕2021/8/29三、三、m文件的分類文件的分類 可以存取的可以存取的M文件文件 稱命令文件(稱命令文件(程序文件、腳本文件)程序文件、腳本文件) 可調用可調用M文件文件 稱函數稱函數(function)文件文件1 1、程序文件、程序文件 以以.m.m格式進行存取,包含一連串的格式進行存取,包含一連串的MATLABMATLAB指令和指令和必要的注解。與在命令窗口逐行執行文件中的所有指必要的注解。與在命令窗口逐行執行文件中的所有指令,其結果是一樣的。沒有輸
6、入輸出參數。令,其結果是一樣的。沒有輸入輸出參數。 程序運行時只需在命令窗口中鍵入其名稱即可程序運行時只需在命令窗口中鍵入其名稱即可2021/8/210(1)、用clear,close all等語句開始,清除工作空間原有的 變量與圖形,以避免其它已執行的程序殘留數據對本程序的影響。(2)、前幾行通常是對此程序的說明。這些注釋行必須以% 開始,以便計算機執行時不予理會。(注釋部分)(3)、程序的主體 如果程序中有全局變量,即在主程序與主程序中共有的變量,應在程序中的起始部分注明。語句為: global 變量名(4)、整個程序按Matlab 標示符的要求其文件名,并加上.m后綴。主要特征:主要特征
7、:2021/8/211% 西安電子科技大學出版社出版西安電子科技大學出版社出版 陳懷琛編著陳懷琛編著 1999年年10月初版,月初版,2004年年11月第二版月第二版% 求求fibonacci數的程序數的程序clcclearclose allR=input(輸入輸入fibonacci數的最大范圍數的最大范圍R= ),f=1 1; i=1;while f(i)+f(i+1)R f(i+2)=f(i)+f(i+1); i=i+1;endfplot(f)注意:程序中的變量保存在工作空間中。兩大部分:注釋部分、程序部分注意:程序中的變量保存在工作空間中。兩大部分:注釋部分、程序部分2021/8/212
8、 % 求素數的程序求素數的程序 clear close all clc N=input(輸入素數的最大范圍輸入素數的最大范圍N=); x=2:N; %列出從列出從2-N的全部自然數的全部自然數 for u=2:sqrt(N) %依次取出除數依次取出除數(最大到最大到N的平方根的平方根) n=find(rem(x,u)=0 & x=u); %找到被找到被U整除且不等于整除且不等于U的數的序號的數的序號 x(n)=; %去掉該數去掉該數 end x %顯示結果顯示結果2021/8/2132、函數文件、函數文件 (1)函數定義行(關鍵字function)functionout1,out2,.=fil
9、ename(in1,in2,.)輸入和輸出(返回)的參數個數分別由nargin和nargout兩個MATLAB保留的變量來給出。(2)函數體說明及有關注解以(%)開頭,用以說明函數的作用及有關內容如果不希望顯示某段信息,可在它的前面加空行(3)函數體語句函數體內使用的除返回和輸入變量這些在function語句中直接引用的變量以外的所有變量都是局部變量,即在該函數返回之后,這些變量會自動在MATLAB的工作空間中清除掉。如果希望這些中間變量成為在整個程序中都起作用的變量,則可以將它們設置為全局變量。 2021/8/214 function y=mean(x) %Mean求平均值,返回x向量所有元
10、素的平均值 %對于矩陣,返回各列平均值的行向量 m,n=size(x) if m=1 m=n end y=sum(x)/m例如:例如:變量不在工作空間里變量不在工作空間里2021/8/215 matlab用戶可以根據需要編輯自己的用戶可以根據需要編輯自己的m文件,它文件,它們可以像庫函數一樣方便的調用,從而極大地擴們可以像庫函數一樣方便的調用,從而極大地擴展了展了matlab 的能力的能力 對于某一類特殊問題,如創建了許多對于某一類特殊問題,如創建了許多m函數文件,函數文件,則可形成新的工具箱。則可形成新的工具箱。 這種用這種用matlab語言創建定義新的語言創建定義新的matlab函數的功函
11、數的功能,正體現了能,正體現了matlab語言強大的擴展功能。語言強大的擴展功能。內置函數內置函數2021/8/216函數函數m文件的格式:文件的格式: function 返回變量返回變量=函數名(輸入變量)函數名(輸入變量) 注釋說明語句段注釋說明語句段 程序語句段程序語句段特定規則:特定規則:v函數函數m文件第一行必須以單詞文件第一行必須以單詞function作為引導詞,作為引導詞,必須遵循如下形式:必須遵循如下形式: function 變量變量1,變量,變量2=函數名函數名(變量變量1,變量,變量2)vm文件的文件名必須是文件的文件名必須是 .m。1.程序中的變量(輸出除外)均為局部變量
12、,不保存在程序中的變量(輸出除外)均為局部變量,不保存在工作空間中。其變量只在函數運行期間有效。工作空間中。其變量只在函數運行期間有效。2021/8/217局部變量 每個函數都有自己的局部變量,這些變量存儲在該函數獨每個函數都有自己的局部變量,這些變量存儲在該函數獨立的工作區中,與其他函數的變量及主工作區中的變量分立的工作區中,與其他函數的變量及主工作區中的變量分開存儲。當函數調用結束時,這些變量隨之刪除,不保存開存儲。當函數調用結束時,這些變量隨之刪除,不保存在內存中。并且,除了函數返回值,該函數不改變工作區在內存中。并且,除了函數返回值,該函數不改變工作區中其他變量的值。中其他變量的值。
13、然而腳本文件沒有獨立的工作區,當通過命令窗口調用腳然而腳本文件沒有獨立的工作區,當通過命令窗口調用腳本文件時,腳本文件分享主工作區,當函數調用腳本文件本文件時,腳本文件分享主工作區,當函數調用腳本文件時,腳本文件分享主調函數的工作區。需要注意的是,如時,腳本文件分享主調函數的工作區。需要注意的是,如果腳本中改變了工作區中變量的值,則在腳本文件調用結果腳本中改變了工作區中變量的值,則在腳本文件調用結束后,該變量的值發生改變。束后,該變量的值發生改變。 在函數中,變量默認為局部變量。在函數中,變量默認為局部變量。2021/8/218全局變量 局部變量只在一個工作區內有效,無論是函數工作區還是 MA
14、TLAB 主工作區。與局部變量不同,全局變量可以在定義該變量的全部工作區中有效。當在一個工作區內改變該變量的值時,該變量在其他工作區中的變量同時改變。 任何函數如果需要使用全局變量,則必須首先聲明,聲明格式為: global 變量名1 變量名2 如果一個 M 文件中包含的子函數需要訪問全局變量,則需在子函數中聲明該變量,如果需要在命令行中訪問該變量,則需在命令行中聲明該變量。2021/8/219【例】 全局變量應用示例 先建立函數文件wadd.m,該函數將輸入的參數加權相加。 function f=wadd(x,y) %add two variable global ALPHA BETA f=
15、ALPHA*x+BETA*y;在命令窗口中輸入: global ALPHA BETA ALPHA=1; BETA=2; s=wadd(1,2)輸出為: s = 52021/8/220function x,d=root1(a,b,c) % % a=input(a=);% pause(5)% b=input(b=);% % A=press any key to continue.;% disp(A)% pause% c=input(c=); d=b*b-4*a*c; % disp(A)% pause x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a); 2021/8/221
16、 function fout=charray(a,b,c) if nargin =1 fout=a; elseif nargin=2 fout=a+b; elseif nargin=3 fout=(a*b*c)/2; end2021/8/222四、人機交互命令 echo 指令指令 用來控制用來控制m文件在執行過程中是否顯示文件在執行過程中是否顯示 echo on 打開所有命令文件的顯示方式打開所有命令文件的顯示方式 echo off 關閉所有命令文件的顯示方式關閉所有命令文件的顯示方式 % 求素數的程序求素數的程序N=input(輸入素數的最大范圍輸入素數的最大范圍N=); x=2:N; ec
17、ho on %在命令窗口中顯示執行程序在命令窗口中顯示執行程序 %列出從列出從2-N的全部自然數的全部自然數for u=2:sqrt(N) %依次取出除數依次取出除數(最大到最大到N的平方根的平方根) n=find(rem(x,u)=0 & x=u); %找到被找到被U整除且不等于整除且不等于U的數的序號的數的序號 x(n)=; %去掉該數去掉該數 endecho off %在命令窗口中不顯示執行程序在命令窗口中不顯示執行程序x %顯示結果顯示結果2021/8/223 pause 暫停,等待用戶響應 調用格式:調用格式: pause(延遲秒數延遲秒數) 注:如果省略延遲時間,直接使用注:如果省
18、略延遲時間,直接使用pause,則將,則將暫停程序,直到用戶按任一鍵后程序繼續執行。暫停程序,直到用戶按任一鍵后程序繼續執行。 若要強行中止程序的運行可使用若要強行中止程序的運行可使用Ctrl+C命令。命令。2021/8/224 a=input(a=); pause(5) b=input(b=); A=press any key to continue.; disp(A) pause c=input(c=); d=b*b-4*a*c; disp(A) pause x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a)2021/8/225 keyboard 當keyboard在m文件中出現時,它停止文件的執行并控制鍵盤,用于修改程序。 a=input(a=); pause(2) b=input(b=); A=press any key to continue.; disp(A) pause c=input(c=); keyboard d=b*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度中國石化春季招聘統一初選考試筆試參考題庫附帶答案詳解
- 2024-2025工廠安全培訓考試試題及參考答案(達標題)
- 2025企業主要負責人安全培訓考試試題答案4A
- 2025公司、項目部、各個班組三級安全培訓考試試題往年題考
- 2025美容院員工勞動合同模板
- 2025房屋抵押合同模板
- 2025年上海公司股權轉讓合同模板
- 2025國際民間貿易合作合同模板
- 2025電子產品買賣合同模板
- 2025年工程材料供應購銷合同范本
- 《大學物理課件-電學部分》
- 眼視光器械學-第五章-眼底檢測儀器課件
- 有毒動植物食物中毒及其預防-河豚魚中毒(食品安全課件)
- 小鳥簡筆畫畫法課件-小鳥畫法簡筆畫圖片
- k線圖經典圖解
- 對公客戶信息泄露應急預案
- 教科版五年級科學下冊全套測試卷
- 塞外山城張家口
- 13.外墻涂料工程質量樣板驗收表格
- 多發傷及復合傷的搶救處理流程
- 房室結折返性心動過速
評論
0/150
提交評論