Matlab計算與仿真_第1頁
Matlab計算與仿真_第2頁
Matlab計算與仿真_第3頁
Matlab計算與仿真_第4頁
Matlab計算與仿真_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、MatlabMatlab計算與仿真計算與仿真n第八講回顧第八講回顧nMatlab編程編程-III - 變量查詢變量查詢 - 匿名函數(shù)匿名函數(shù) - 參數(shù)交互輸入?yún)?shù)交互輸入 - Matlab程序調試程序調試 - 語言結構與調試函數(shù)語言結構與調試函數(shù)第九講提綱第九講提綱MatlabMatlab計算與仿真計算與仿真第八講回顧第八講回顧n函數(shù)的定義及申明函數(shù)的定義及申明 - 使用方式使用方式: 調用調用/嵌套嵌套 - 協(xié)作方式協(xié)作方式: 主函數(shù)主函數(shù)/子函數(shù)子函數(shù)/嵌套函數(shù)嵌套函數(shù) - 內部變量內部變量: 生存周期控制生存周期控制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)結構循環(huán)結構 根據(jù)條件重復執(zhí)行程序指令或模塊根據(jù)條件重復執(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計算與仿真計算與仿真綜合練習綜合練習: 利用級數(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綜合練習七: 生命周期曲線 - 提示: 生理-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計算與仿真計算與仿真- 關于函數(shù)變量與參數(shù)傳遞關于函數(shù)變量與參數(shù)傳遞 輸入輸入(輸出輸出)變量查詢函數(shù)變量查詢函數(shù): nargin(nargout) 功能功能: 返回函數(shù)的輸入返回函數(shù)的輸入(輸出輸出)個數(shù)個數(shù) 應用應用: 根據(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ù)類型, 由由 標識標識 中可以是算術中可以是算術/邏輯邏輯/字符字符/結構數(shù)據(jù)類型結構數(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) 應用操作應用操作 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) 結果結果 frequence is (等待鍵盤輸入等待鍵盤輸入, 回車確認輸入完成回車確認輸入完成 ) MatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù))鍵盤控制模式鍵盤控制模式 基本格式基本格式: keyboard; 功能實現(xiàn)功能實現(xiàn): 臨時終止程序執(zhí)行臨時終止程序執(zhí)行 將控制權交給命令窗口將控制權交給命令窗口 利用回車結束鍵盤控制利用回

17、車結束鍵盤控制 使用實例使用實例 查詢查詢/修改函數(shù)工作空間的變量修改函數(shù)工作空間的變量 建立新的函數(shù)空間的變量建立新的函數(shù)空間的變量MatlabMatlab計算與仿真計算與仿真Matlab編程編程 (續(xù)續(xù))菜單輸入模式菜單輸入模式 基本格式基本格式: item_no=menu(title,item1,itemn); 功能實現(xiàn)功能實現(xiàn): 顯示菜單顯示菜單 用戶選擇按鈕用戶選擇按鈕 返回菜單序號返回菜單序號 使用實例使用實例 s=menu(signal,red,green,yellow) 可結合選擇控制語句使用可結合選擇控制語句使用MatlabMatlab計算與仿真計算與仿真Matlab編程編程

18、 (續(xù)續(xù))程序設計技術程序設計技術 循環(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ù))程序設計技術程序設計技術(續(xù)續(xù)) 陣列預分配空間陣列預分配空間 目的目的: 避免循環(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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論