




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、MatlabMatlab計算與仿真計算與仿真n第八講回顧第八講回顧nMatlab編程編程-III - 變量查詢變量查詢 - 匿名函數(shù)匿名函數(shù) - 參數(shù)交互輸入?yún)?shù)交互輸入 - Matlab程序調(diào)試程序調(diào)試 - 語言結(jié)構(gòu)與調(diào)試函數(shù)語言結(jié)構(gòu)與調(diào)試函數(shù)第九講提綱第九講提綱MatlabMatlab計算與仿真計算與仿真第八講回顧第八講回顧n函數(shù)的定義及申明函數(shù)的定義及申明 - 使用方式使用方式: 調(diào)用調(diào)用/嵌套嵌套 - 協(xié)作方式協(xié)作方式: 主函數(shù)主函數(shù)/子函數(shù)子函數(shù)/嵌套函數(shù)嵌套函數(shù) - 內(nèi)部變量內(nèi)部變量: 生存周期控制生存周期控制n控制語句控制語句 - if /if-else/if-elseif-el
2、se - switch-case - for/while MatlabMatlab計算與仿真計算與仿真第八講回顧第八講回顧 (續(xù)續(xù)) if 語句一般形式語句一般形式 if logical_expression block of statements elseif logical_expression block of statements else block of statements endMatlabMatlab計算與仿真計算與仿真第八講回顧第八講回顧 (續(xù)續(xù)) switch 語句語句 一般形式一般形式 switch expression case value1, block of st
3、atements case value2, block of statements . otherwise, block of statements endMatlabMatlab計算與仿真計算與仿真第八講回顧第八講回顧 (續(xù)續(xù)) - 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 根據(jù)條件重復(fù)執(zhí)行程序指令或模塊根據(jù)條件重復(fù)執(zhí)行程序指令或模塊 for 語句語句 % % 計數(shù)循環(huán)計數(shù)循環(huán) 一般形式一般形式 for index = expression block of statements endMatlabMatlab計算與仿真計算與仿真第八講回顧第八講回顧 (續(xù)續(xù)) while 語句語句 一般形式一般形式 while e
4、xpression block of statements endMatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù))while 語句實例語句實例: newton法計算法計算 while abs(rold-r) delta rold = r; r = 0.5*(rold + x/rold); end12newoldoldxrrrxMatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù))循環(huán)中斷控制循環(huán)中斷控制: while 語句實例語句實例 x = rand(1,10); k = 1; while k0.8 break end k = k + 1; en
5、dMatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù))函數(shù)返回控制函數(shù)返回控制: while 語句實例語句實例 x = rand(1,10); k = 1; while k0.8 return end k = k + 1; endMatlabMatlab計算與仿真計算與仿真綜合練習(xí)綜合練習(xí): 利用級數(shù)展開近似計算利用級數(shù)展開近似計算 sin - 提示提示 sin 的級數(shù)展開為的級數(shù)展開為 - m-函數(shù)實例函數(shù)實例 1: function s=powersin(x); 2: % POWERSIN. Power series for sin(x). 3: % POWERSIN
6、(x) tries to compute sin(x) from a power series.Matlab編程編程 (續(xù)續(xù))357sin3!5!7!xxxxxMatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù)) 4: s=0; 5: t=x; 6: n=1: 7: while abs(t) eps 8: s=s+t; 9: t=-x.2/(n+1)*(n+2).*t; 10: n=n+2; 11: endMatlabMatlab計算與仿真計算與仿真n綜合練習(xí)七: 生命周期曲線 - 提示: 生理-23天; 情感-28天; 智力-33天 function biorythm(
7、mybirthday) t0=datenum(mybirthday); t1=fix(now); t=(t1-28):1:(t1+28); t=t; y=100*sin(2*pi*(t-t0)/23) sin(2*pi*(t-t0)/28) sin(2*pi*(t-t0)/33);Matlab編程編程 (續(xù)續(xù))MatlabMatlab計算與仿真計算與仿真 plot(t,y(:,1),t,y(:,2),-,t,y(:,3),.-,t1 t1,-100 100,k:); datetick(x,dd/mm,keeplimits); axis tight; title(mybirthday); leg
8、end(Physical,Emotional,Intellectual); xlabel(timedd/mm); ylabel(biorythm index %)Matlab編程編程 (續(xù)續(xù))MatlabMatlab計算與仿真計算與仿真- 關(guān)于函數(shù)變量與參數(shù)傳遞關(guān)于函數(shù)變量與參數(shù)傳遞 輸入輸入(輸出輸出)變量查詢函數(shù)變量查詢函數(shù): nargin(nargout) 功能功能: 返回函數(shù)的輸入返回函數(shù)的輸入(輸出輸出)個數(shù)個數(shù) 應(yīng)用應(yīng)用: 根據(jù)變量個數(shù)根據(jù)變量個數(shù), 選取模塊執(zhí)行選取模塊執(zhí)行 function c = testarg1(a, b) if (nargin = 1) c = a . 2
9、; elseif (nargin = 2) c = a * b; endMatlab編程編程 (續(xù)續(xù))MatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù)) - 變量的傳遞變量的傳遞 輸入輸入(輸出輸出)變量查詢函數(shù)變量查詢函數(shù): varargin(varargout) 功能功能: 返回由函數(shù)的輸入返回由函數(shù)的輸入(輸出輸出)變量的元胞數(shù)組變量的元胞數(shù)組 元胞元胞: Matlab的數(shù)據(jù)類型的數(shù)據(jù)類型, 由由 標(biāo)識標(biāo)識 中可以是算術(shù)中可以是算術(shù)/邏輯邏輯/字符字符/結(jié)構(gòu)數(shù)據(jù)類型結(jié)構(gòu)數(shù)據(jù)類型, 例如例如 A(1,1) = 1 4 3; 0 5 8; 7 2 9; A(1,2)
10、= Anne Smith; A(2,1) = 3+7i; A(2,2) = -pi:pi/10:pi;MatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù)) - 變量的傳遞變量的傳遞(續(xù)續(xù)): 替代列表替代列表 注意注意: 元胞數(shù)組的引用元胞數(shù)組的引用: function testvar(varargin) for k = 1:length(varargin) x(k) = varargink(1); % Cell array indexing y(k) = varargink(2); end xmin = min(0,min(x); ymin = min(0,min(y)
11、; axis(xmin fix(max(x)+3 ymin fix(max(y)+3) plot(x,y)MatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù))- - 函數(shù)句柄函數(shù)句柄 定義定義: 指向函數(shù)的指向函數(shù)的Matlab值值, 基本格式基本格式 fhandle=functionname fhandle可以作為變量傳遞可以作為變量傳遞 功能功能: 用于函數(shù)的創(chuàng)建和訪問用于函數(shù)的創(chuàng)建和訪問(運算運算) sqr = (x) x.2 % 匿名函數(shù)匿名函數(shù) trigFun = sin, cos, tan plot(trigFun2(-pi:0.01:pi)MatlabMat
12、lab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù))函數(shù)句柄的引用格式函數(shù)句柄的引用格式 fhandle(arg1, arg2, ., argn) 實例實例: fhandle指向指向函數(shù)的曲線繪制函數(shù)的曲線繪制 function x = plotFHandle(fhandle, data) plot(data, fhandle(data) 引用引用: 繪制繪制sin函數(shù)的曲線函數(shù)的曲線 plotFHandle(sin,-pi:0.01:pi)MatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù)) 匿名函數(shù)匿名函數(shù) 創(chuàng)建匿名函數(shù)創(chuàng)建匿名函數(shù) fhandle = (argl
13、ist) expr 創(chuàng)建實例創(chuàng)建實例 sumxy = (x, y) (x + y) 應(yīng)用操作應(yīng)用操作 sumxy(5, 7) MatlabMatlab計算與仿真計算與仿真 匿名函數(shù)元胞組實例匿名函數(shù)元胞組實例 A = (x)x.2, (y)y+10, (x,y)x.2+y+10 A = (x)x.2 (y)y+10 (x,y)x.2+y+10 A1(4) + A2(7) ans = 33 A3(4, 7) ans = 33 Matlab編程編程 (續(xù)續(xù))MatlabMatlab計算與仿真計算與仿真參數(shù)化的匿名函數(shù)參數(shù)化的匿名函數(shù) a = 1.3; b = .2; c = 30; parabol
14、a = (x) a*x.2 + b*x + c; fplot(parabola, -25 25) % fplot(x) a*x.2 + b*x + c, -25 25) a = -3.9; b = 52; c = 0; fplot(parabola, -25 25) 提示提示: fplot 繪制句柄指向函數(shù)的圖形繪制句柄指向函數(shù)的圖形Matlab編程編程 (續(xù)續(xù))MatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù))多重匿名函數(shù)的使用多重匿名函數(shù)的使用 問題問題: 計算計算 提示提示: quad 是是 matlab 缺省的積分計算函數(shù)缺省的積分計算函數(shù) 回憶回憶: look
15、for quad g = (c) (quad(x) (x.2 + c*x + 1), 0, 1); g(2)120( )1 dg cxcxx(2)gMatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù))用戶參數(shù)交互輸入用戶參數(shù)交互輸入 參數(shù)的作用參數(shù)的作用: 使程序更加通用靈活使程序更加通用靈活 參數(shù)輸入的主要模式參數(shù)輸入的主要模式 - input 函數(shù)輸入?yún)?shù)函數(shù)輸入?yún)?shù) - keyboard函數(shù)函數(shù) (鍵盤模式鍵盤模式) - menu 函數(shù)函數(shù) (菜單模式菜單模式) MatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù))鍵盤輸入模式鍵盤輸入模式 基本
16、格式基本格式: v= input( 顯示的提示信息顯示的提示信息 ); 功能實現(xiàn)功能實現(xiàn): 向用戶顯示提示信息向用戶顯示提示信息 將用戶的輸入賦給將用戶的輸入賦給v 使用實例使用實例 freq=input(frequence is) 結(jié)果結(jié)果 frequence is (等待鍵盤輸入等待鍵盤輸入, 回車確認輸入完成回車確認輸入完成 ) MatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù))鍵盤控制模式鍵盤控制模式 基本格式基本格式: keyboard; 功能實現(xiàn)功能實現(xiàn): 臨時終止程序執(zhí)行臨時終止程序執(zhí)行 將控制權(quán)交給命令窗口將控制權(quán)交給命令窗口 利用回車結(jié)束鍵盤控制利用回
17、車結(jié)束鍵盤控制 使用實例使用實例 查詢查詢/修改函數(shù)工作空間的變量修改函數(shù)工作空間的變量 建立新的函數(shù)空間的變量建立新的函數(shù)空間的變量MatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù))菜單輸入模式菜單輸入模式 基本格式基本格式: item_no=menu(title,item1,itemn); 功能實現(xiàn)功能實現(xiàn): 顯示菜單顯示菜單 用戶選擇按鈕用戶選擇按鈕 返回菜單序號返回菜單序號 使用實例使用實例 s=menu(signal,red,green,yellow) 可結(jié)合選擇控制語句使用可結(jié)合選擇控制語句使用MatlabMatlab計算與仿真計算與仿真Matlab編程編程
18、 (續(xù)續(xù))程序設(shè)計技術(shù)程序設(shè)計技術(shù) 循環(huán)向量化計算模式循環(huán)向量化計算模式 目的目的: 向量計算替代循環(huán)模式向量計算替代循環(huán)模式 實例實例: tic tic for t=0:0.01:100 t=0.0:0.01:100 i=i+1; y(i)=sin(t) y=sin(t) end toc toc 耗時耗時7.58 耗時耗時0.01 MatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù))程序設(shè)計技術(shù)程序設(shè)計技術(shù)(續(xù)續(xù)) 陣列預(yù)分配空間陣列預(yù)分配空間 目的目的: 避免循環(huán)過程空間分配的耗時避免循環(huán)過程空間分配的耗時 實例實例: y(k)=0.75y(k-1)-0.125y(k-2)+2u(k) clear all,tic T=0.001; t=0:T:16 u=sin(2*pi*t); % y=zeros(size(u) y(1)=2*u(1); y(2)=0.75*y(1)+2*u(2);耗時耗時0.562(%)/
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 衛(wèi)浴企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 節(jié)能型爐用燃燒器企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 耐水彈性泡沫石棉企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 不銹鋼日用制品企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 中和槽企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 納米鐵企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 娃娃玩具制造企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 弓鋸床企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 太陽能用蓄電池企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告-20250401-223445
- 電子收款機企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 保險公司增額終身壽主講課件
- 上海市2023-2024學(xué)年五年級下冊第1-3單元期中模擬測試數(shù)學(xué)試卷(滬教版)
- 廠房屋頂分布式光伏電站工程日常質(zhì)量巡查記錄表
- 中考語文真題雙向細目表
- 老年護理中的跌倒風(fēng)險評估與干預(yù)計劃
- 《小兒支氣管炎肺炎》課件
- 職場人健康狀況調(diào)查報告
- 基于時序數(shù)據(jù)的深度學(xué)習(xí)異常檢測技術(shù)
- 第六章 內(nèi)輪廓加工
- 工程力學(xué)答案
- 2023年新高考生物江蘇卷試題真題答案解析版(精校打印)
評論
0/150
提交評論