matlab3程序設(shè)計.ppt_第1頁
matlab3程序設(shè)計.ppt_第2頁
matlab3程序設(shè)計.ppt_第3頁
matlab3程序設(shè)計.ppt_第4頁
matlab3程序設(shè)計.ppt_第5頁
已閱讀5頁,還剩78頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第三章MATLAB程序設(shè)計 一 matlab的工作模式 1 指令驅(qū)動模式 通常matlab以指令驅(qū)動模式工作即在matlab窗口下 當(dāng)用戶輸入單行指令時 matlab立即處理這條指令 并顯示結(jié)果 這就是matlab命令行方式 命令行操作時 matlab窗口只允許一次執(zhí)行一行上的一個或幾個語句 x1 0 10 x2 0 3 11 x3 11 5 3 0 x1 012345678910 x2 0369x3 11 50008 50005 50002 5000在matlab窗口輸入數(shù)據(jù)和命令進(jìn)行計算時 當(dāng)處理復(fù)雜問題和大量數(shù)據(jù)時是不方便的 因此應(yīng)編輯m文件 2 m文件m文件的語法類似于c語言 但有自身特點 它只是一個簡單的ASCII碼文本文件 執(zhí)行程序時逐行解釋運行程序 matlab是解釋性的編程語言 m文件有兩類 獨立的m文件 稱程序文件 可調(diào)用m文件 稱函數(shù)文件 1 程序文件 簡單的m文件程序文件實際上是一串指令的集合 與在命令窗口逐行執(zhí)行文件中的所有指令 其結(jié)果是一樣的 沒有輸入輸出參數(shù) 2 matlab內(nèi)置函數(shù)文件matlab自定義的函數(shù)文件稱內(nèi)置函數(shù)文件調(diào)用內(nèi)置函數(shù)的方法 使用函數(shù)名并給出相應(yīng)的入口 出口參數(shù)即可 例如 sin m函數(shù) 用typesin查不到 調(diào)用格式 y sin 2 x 實際應(yīng)用中 x 0 2 pi 180 2 pi y sin 2 x plot x y 3 函數(shù)m文件 需要輸入變量 返回輸出變量matlab用戶可以根據(jù)需要編輯自己的m文件 它們可以像庫函數(shù)一樣方便的調(diào)用 從而極大地擴展了matlab的能力 各種工具箱的內(nèi)部函數(shù)基本都是M函數(shù)文件 用戶也可以自己編寫一組M函數(shù)文件組成工具箱對于某一類特殊問題 如創(chuàng)建了許多m函數(shù)文件 則可形成新的工具箱 這種用matlab語言創(chuàng)建定義新的matlab函數(shù)的功能 正體現(xiàn)了matlab語言強大的擴展功能 二 文本編輯窗MATLAB文本編輯器的功能就是完成編寫 修改和調(diào)試這種文件程序就要用到M文件編輯器 調(diào)試器 文本編輯器 調(diào)試器的啟動可以從命令窗口中或當(dāng)前目錄窗口中選擇新建或打開文件按鈕進(jìn)入 或在命令窗口中鍵入 edit 回車 其編輯模式如下圖所示 在文本編輯器中 文字的不同顏色顯示表明文字的不同屬性 綠色 注解 黑色 程序主體 紅色 屬性值的設(shè)定 藍(lán)色 控制流程 編輯功能與大多數(shù)編輯器類似 都有復(fù)制 粘貼 查找 加注釋 縮進(jìn)等功能具有程序調(diào)試功能 設(shè)置斷點 單步執(zhí)行 連續(xù)執(zhí)行等在運行程序之前 必須設(shè)置好MATLAB的工作路徑 使得所要運行的程序及運行程序所需要的其他文件處在當(dāng)前目錄之下 只有這樣 才可以使程序得以正常運行 否則可能導(dǎo)致無法讀取某些系統(tǒng)文件或數(shù)據(jù) 從而程序無法執(zhí)行 文本編輯器的相關(guān)菜單功能 SaveandRun 保存并運行程序 直到遇到下一個斷點 對應(yīng)工具按鈕為 SingleStep 單步執(zhí)行 對應(yīng)工具按鈕為 StepIn 運行當(dāng)前程序行 如果當(dāng)前行調(diào)用了另外一個函數(shù) 則跳轉(zhuǎn)到這個函數(shù)里 對應(yīng)的工具按鈕為 ExitDebugMode 退出調(diào)試模式 工具按鈕為 Set ClearBreakpoint 設(shè)置 清除斷點 ClearAllBreakpoints 清除所有的斷點 文本編輯器的參數(shù)設(shè)置 三 MATLBA程序的基本設(shè)計原則 1 后面的內(nèi)容是程序的注解 要善于運用注解使程序更具可讀性 2 養(yǎng)成在主程序開頭用clear指令清除變量的習(xí)慣 以消除工作空間中其他變量對程序運行的影響 但注意在子程序中不要用clear 3 參數(shù)值要集中放在程序的開始部分 以便維護(hù) 要充分利用MATLAB工具箱提供的指令來執(zhí)行所要進(jìn)行的運算 在語句行之后輸入分號使其及中間結(jié)果不在屏幕上顯示 以提高執(zhí)行速度 4 input指令可以用來輸入一些臨時的數(shù)據(jù) 而對于大量參數(shù) 則通過建立一個存儲參數(shù)的子程序 在主程序中用子程序的名稱來調(diào)用 5 程序盡量模塊化 也就是采用主程序調(diào)用子程序的方法 將所有子程序合并在一起來執(zhí)行全部的操作 6 充分利用Debugger來進(jìn)行程序的調(diào)試 設(shè)置斷點 單步執(zhí)行 連續(xù)執(zhí)行 并利用其他工具箱或圖形用戶界面 GUI 的設(shè)計技巧 將設(shè)計結(jié)果集成到一起 7 設(shè)置好MATLAB的工作路徑 以便程序運行 8 MATLAB程序的基本組成結(jié)構(gòu) 說明清除命令 清除workspace中的變量和圖形 clear close 定義變量 包括全局變量的聲明及參數(shù)值的設(shè)定逐行執(zhí)行命令 指MATLAB提供的運算指令或工具箱 提供的專用命令控制循環(huán) 包含for ifthen switch while等語句逐行執(zhí)行命令 繪圖命令 將運算結(jié)果繪制出來 M程序文件以 m格式進(jìn)行存取 包含一連串的MATLAB指令和必要的注釋 M程序文件中的命令格式和前后位置 與在命令窗口中輸入的沒有任何區(qū)別 需要在工作空間中創(chuàng)建并獲取變量 也就是說處理的數(shù)據(jù)為命令窗口中的數(shù)據(jù) 沒有輸入?yún)?shù) 也不會返回參數(shù) 程序運行時只需在工作空間中鍵入其名稱即可 使用helpxxx時將返回程序開始處的注釋信息 四 M程序文件 命令文件包括兩部分 注釋文件和程序文件 二階系統(tǒng)時域響應(yīng)曲線 阻尼系數(shù)為0 3x 0 0 1 20 y 1 1 sqrt 1 0 3 2 exp 0 3 x sin sqrt 1 0 3 2 x acos 0 3 plot x y 程序部分 畫出分段函數(shù)所表示的曲面 Thisisaexample a 2 b 2 clf CLFClearcurrentfigurex a 0 2 a y b 0 2 b fori 1 length y forj 1 length x ifx j y i 1z i j 0 5457 exp 0 75 y i 2 3 75 x j 2 1 5 x j elseifx j y i 1z i j 0 5457 exp 0 75 y i 2 3 75 x j 2 1 5 x j elsez i j 0 7575 exp y i 2 6 x j 2 endendendaxis a a b b min min z max max z colormap flipud winter surf x y z 五 M函數(shù)文件 第一行 函數(shù)聲明行 functiony dfw1 r p res r 1 p0 p 1 y sum res 輸出參數(shù) 函數(shù)名 輸入?yún)?shù) 可以沒有輸入?yún)?shù) 函數(shù)名要遵守Matlab變量名的命名規(guī)則 M函數(shù)存盤時的文件名與函數(shù)名相同 從函數(shù)返回的惟一信息包含在輸出參數(shù)中 要確保函數(shù)中包含一條給輸出參數(shù)賦值的語句 可以沒有輸出參數(shù) function輸出形參列表 函數(shù)名 輸入形參列表 注釋說明部分 可選 函數(shù)體語句 必須 第一行為引導(dǎo)行 表示該M文件是函數(shù)文件函數(shù)名的命名規(guī)則與變量名相同 必須以字母開頭 當(dāng)輸出行參多于一個時 用方括號括起來函數(shù)必須是一個單獨的M文件函數(shù)文件名必須與函數(shù)名一致以百分號開始的語句為注釋語句 函數(shù)文件由function語句引導(dǎo) 函數(shù)可以接受輸入變量 并將運算結(jié)果送到輸出變量函數(shù)具有單獨的工作空間 函數(shù)體內(nèi)使用的除返回和輸入變量外的所有變量都是局部變量 只在函數(shù)工作空間中存在 局部變量不保存在Matlab工作空間中 只在函數(shù)運行期間有效當(dāng)函數(shù)執(zhí)行到最后一條命令或遇到return命令后 就結(jié)束函數(shù)的執(zhí)行 同時函數(shù)工作空間的變量被清除 函數(shù)基本格式 1 函數(shù)定義行 關(guān)鍵字function function out1 out2 filename in1 in2 輸入和輸出 返回 的參數(shù)個數(shù)分別由nargin和nargout兩個MATLAB保留的變量來給出 2 第一行幫助行 即H1行以 開頭 作為lookfor指令搜索的行 3 函數(shù)體說明及有關(guān)注釋以 開頭 用以說明函數(shù)的作用及有關(guān)內(nèi)容 作為help指令顯示的行 如果不希望顯示某段信息 可在它的前面加空行 4 函數(shù)體語句 functiony tt zeta tt 二階系統(tǒng)時域響應(yīng)曲線 其他注釋 zeta阻尼系數(shù)x 0 0 1 20 y 1 1 sqrt 1 zeta 2 exp zeta x sin sqrt 1 zeta 2 x acos zeta plot x y 用于lookfor x y是局部變量 help 在MATLAB中 調(diào)用函數(shù)的常用形式是 輸出參數(shù)1 輸出參數(shù)2 函數(shù)名 輸入?yún)?shù)1 輸入?yún)?shù)2 函數(shù)調(diào)用可以嵌套 一個函數(shù)可以調(diào)用別的函數(shù) 甚至調(diào)用它自己 遞歸調(diào)用 1 函數(shù)調(diào)用 a 1 b 3 c 1 x1x2 FindRoots a b c function x1x2 FindRoots a b c a x 2 b x c 0 x1 b b 2 4 a c 0 5 2 a x2 b b 2 4 a c 0 5 2 a 函數(shù)調(diào)用的一般格式 輸出實參列表 函數(shù)名 輸入實參列表 函數(shù)調(diào)用時 實參的順序應(yīng)與函數(shù)定義時的形參的順序一致 函數(shù)調(diào)用 functiony dfw1 r p 函數(shù)定義 形參 z dfw1 x k 實參 1 nargin函數(shù)體內(nèi)獲取實際輸入變量的個數(shù)2 nargout函數(shù)體內(nèi)獲取實際輸出變量的個數(shù)3 nargin fun 函數(shù)體外獲取定義輸入變量數(shù)4 nargout fun 函數(shù)體外獲取實際輸出變量數(shù)5 varargin獲得輸入變量的各元素內(nèi)容6 varargout獲得輸出變量的各元素內(nèi)容見文件mysum m MATLAB在函數(shù)調(diào)用上有一個與眾不同之處 函數(shù)所傳遞的參數(shù)具有可調(diào)性 函數(shù)文件examp m functionfout examp a b c ifnargin 1fout a elseifnargin 2fout a b elseifnargin 3fout a b c 2 end 程序文件mydemo m x 1 3 y 1 2 3 examp x examp x y examp x y 3 函數(shù)通過輸入和輸出參數(shù)與其它M文件進(jìn)行數(shù)據(jù)傳遞 當(dāng)函數(shù)調(diào)用完畢后 該函數(shù)文件中定義的所有局部變量都將被釋放 即全部被清除 函數(shù)文件中的變量都是局部的 即一個函數(shù)文件中定義的變量不能被另一個函數(shù)文件或其它M文件使用 2 局部變量 函數(shù)文件運行時 matlab會專門開辟一個臨時工作區(qū)間 稱為函數(shù)工作區(qū)間 如果在M函數(shù)中 調(diào)用某個M程序文件 那么該程序文件運行時產(chǎn)生的所有變量都存放于該函數(shù)空間中 而不是存放在Matlab空間 變量名列表中的各個變量用空格隔開 不能用逗號 全局變量給函數(shù)間的數(shù)據(jù)傳遞帶來了方便 但卻破壞了函數(shù)對變量的封裝 降低了程序的可讀性 因而在結(jié)構(gòu)化程序設(shè)計中 全局變量是不受歡迎的 特別是當(dāng)程序較大 子程序較多時 全局變量將個程序調(diào)試和維護(hù)帶來不便 故不提倡使用全局變量 global變量名列表 3 全局變量 如果在若干個M文件中 都把某個變量定義為全局變量 則這些函數(shù)將公共使用這一變量 所有函數(shù)都可以對它進(jìn)行存取和修改操作 globalabca 18 3036b 3816 44c 46 13fori 1 11t 373 2 10 i 1 psat i antoine t end 函數(shù) Antoine mfunctionp vap antoine t globalabcp vap exp a b t c function num1 num2 num3 test3 varargin globalfirstlevelsecondlevelnum1 0 num2 0 num3 0 list zeros nargin fori 1 narginlist i sum varargin i list i list i length varargin i iflist i firstlevelnum1 num1 1 elseiflist i secondlevelnum2 num2 1 elsenum3 num3 1 endend globalfirstlevelsecondlevel firstlevel 85 secondlevel 75 a b c test3 90 89 60 79 89 60 99 98 100 a 1b 2c 0 4 子函數(shù) 函數(shù)文件中可以含有一個或多個子函數(shù)子函數(shù)由function語句引導(dǎo)主函數(shù)必須位于最前面 子函數(shù)出現(xiàn)的次序任意子函數(shù)只能被主函數(shù)和位于同一個函數(shù)文件中的其它子函數(shù)調(diào)用除了用global定義的全局變量外 子函數(shù)中的變量都是局部變量 子函數(shù)與主函數(shù)及其它子函數(shù)之間通過輸入 輸出參數(shù)進(jìn)行數(shù)據(jù)傳遞主函數(shù)與子函數(shù)的工作空間相互獨立用help和lookfor命令不能提供子函數(shù)的幫助信息 functiontest 注釋tt 0 3 holdon tt 0 5 tt 0 707 functiony tt zeta 二階系統(tǒng)時域響應(yīng)曲線 zeta阻尼系數(shù)x 0 0 1 20 y 1 1 sqrt 1 zeta 2 exp zeta x sin sqrt 1 zeta 2 x acos zeta plot x y function avg med main fun x 主函數(shù)n length x avg sub fun1 x n med sub fun2 x n functiona sub fun1 x n 子函數(shù)a sum x n functionm sub fun2 x n 子函數(shù)x sort x ifrem n 2 1m x n 1 2 elsem x n 2 x n 2 1 2 end MATLAB的搜索過程 matlab在一個文件中碰到指令cow時 1 檢查cow是否變量 2 檢查cow是否內(nèi)建函數(shù) 3 檢查cow是否子函數(shù) 4 檢查cow是否私用函數(shù) 私用函數(shù)指位于private目錄上的M文件函數(shù) 私用函數(shù)只能被private目錄的直接父目錄上的M函數(shù)文件所調(diào)用 5 檢查cow是否當(dāng)前目錄上的文件 先找 p 再找 m 6 檢查搜索路徑上是否有cow 六 程序流程結(jié)構(gòu) 一 M 文件中輸入 輸出命令 直接賦值輸入 提示對話輸入 input命令 x 2 x input 請輸入?yún)?shù)x a 1 2 3 4 a input 請輸入矩陣a s anystring s input Pleaseinputs s 直接輸出 格式控制輸出 fprintf命令 xfprintf x 0f y 5f n pi pi disp a b fprintf x 5g y 10 5g n N pi 例 輸入一個人的姓名 xm input What syourname s 例 求一元二次方程a2 bx c 0的根 a input a b input b c input c d b b 4 a c x b sqrt d 2 a b sqrt d 2 a 將該程序以aa m文件存盤 然后運行aa m文件 keyboard 停止程序執(zhí)行 把控制權(quán)交給鍵盤 輸入return并回車后繼續(xù)程序執(zhí)行 return 結(jié)束函數(shù)執(zhí)行 返回主程序 若想強行終止程序或中斷死循環(huán) 按下Ctrl C鍵 pause函數(shù) 暫停程序的執(zhí)行 調(diào)用格式 pause 延遲秒數(shù) 注 如果省略延遲時間 直接使用pause 則將暫停程序 直到用戶按任一鍵后程序繼續(xù)執(zhí)行 二 選擇結(jié)構(gòu) 選擇結(jié)構(gòu)的語句有if語句和switch語句 1 if語句格式一 if條件語句組end 格式二 if條件語句組1else語句組2end 格式三 if條件1語句組1elseif條件2語句組2 elseif條件m語句組melse語句組m 1end 例輸入三角形的三條邊 求面積 A input 請輸入三角形的三條邊 ifA 1 A 2 A 3 elsedisp 不能構(gòu)成一個三角形 end運行 請輸入三角形的三條邊 456 9 9216 輸入一個字符 若為大寫字母 則輸出其后繼字符 若為小寫字母 則輸出其前導(dǎo)字符 若為其他字符則原樣輸出 c input s ifc A end 建立符號函數(shù)sign x x input x ifx 0sn 1 elseifx 0sn 0 elsesn 1 endfprintf x 5f sn 0f n x sn 2switch語句 switch語句根據(jù)變量或表達(dá)式的取值不同 分別執(zhí)行不同的語句 其格式為 switch表達(dá)式case值1語句組1case值2 語句組2 case值m語句組motherwise語句組m 1end 例根據(jù)變量num的值來決定顯示的內(nèi)容 num input 請輸入一個數(shù) switchnumcase 1disp Iamateacher case0disp Iamastudent case1disp Youareateacher otherwisedisp Youareastudent end 三 循環(huán)結(jié)構(gòu) 實現(xiàn)循環(huán)結(jié)構(gòu)的語句 for語句和while語句 1 for語句 格式 for循環(huán)變量 表達(dá)式1 表達(dá)式2 表達(dá)式3循環(huán)體語句end注 其中表達(dá)式1的值為循環(huán)變量的初值 表達(dá)式2的值為步長 表達(dá)式3的值為循環(huán)變量的終值 步長為1時 表達(dá)式2可以省略 求1 n 100的和y 0 fori 1 100f 1 2 i 1 y y f end 求奇數(shù)和 s 1 3 5 2k 1 n input 請輸入n s 0 fori 1 2 ns s i fprintf i 0f s 0f n i s end 2 while語句格式為 while 條件表達(dá)式 循環(huán)體語句end循環(huán)控制語句 breakcontinuewhile循環(huán)和for循環(huán)的區(qū)別在于 while循環(huán)結(jié)構(gòu)的循環(huán)體被執(zhí)行的次數(shù)不是確定的 而for結(jié)構(gòu)中循環(huán)體的執(zhí)行次數(shù)是確定的 求e e 1 1 1 2 1 3 1 n 1 0e 8p p i r 1 p e e r fprintf i 0f r 9f e 9f n i r e i i 1 end 求 1 y3break endi i 1 endn i 1y y f break終止最內(nèi)層的for或while語句 執(zhí)行end后面的語句 通常與if結(jié)構(gòu)結(jié)合使用continue結(jié)束本次for或while循環(huán) 繼續(xù)進(jìn)行下次循環(huán) 通常與if結(jié)構(gòu)結(jié)合使用 break語句和continue語句舉例求 100 200 之間第一個能被21整除的整數(shù) forn 100 200ifrem n 21 0continueendbreakendn 3 循環(huán)的嵌套 如果一個循環(huán)結(jié)構(gòu)的循環(huán)體又包括一個循環(huán)結(jié)構(gòu) 就稱為循環(huán)的嵌套 或稱為多重循環(huán)結(jié)構(gòu) 多重循環(huán)的嵌套層數(shù)可以是任意的 可以按照嵌套層數(shù) 分別叫做二重循環(huán) 三重循環(huán)等 處于內(nèi)部的循環(huán)叫作內(nèi)循環(huán) 處于外部的循環(huán)叫作外循環(huán) 求 100 1000 以內(nèi)的全部素數(shù) n 0 form 100 1000flag 1 j m 1 i 2 whilei jend i i 1 endifflagn n 1 prime n m endendprime 變量prime存放素數(shù) 函數(shù)可以嵌套調(diào)用 即一個函數(shù)可以被其它函數(shù)調(diào)用 甚至可以被它自身調(diào)用 此時稱為遞歸調(diào)用 必須確保有一個終止條件來結(jié)束遞歸過程 七 遞歸函數(shù) 函數(shù)文件factor mfunctionf factor n if n 1 f 1 elsef n factor n 1 end main m 計算s 1 2 3 4 5 s 0 fori 1 5s s factor i endfprintf s g n s 例 利用函數(shù)的遞歸調(diào)用計算n 例 數(shù)字全排列問題 全排列是將一組數(shù)按一定順序進(jìn)行排列 如果這組數(shù)有n個 那么全排列數(shù)為n 個 如N 3時 共有以下6種排列方式 123 132 213 231 312 321 1 回溯法 使用遞歸實現(xiàn) 每個數(shù)的取法都有N個方向 1 2 N 當(dāng)取夠N個數(shù)時 輸出一個排列 然后退后一步 取前一個數(shù)的下一個方向 即前一個數(shù) 1 并且要保證所有數(shù)字不能重復(fù) 當(dāng)前數(shù)字的所有方向都取完時 繼續(xù)退一步 一直重復(fù)到第一個數(shù)為止 functionqpl huisu list k ifk length list disp list elsefornum 1 length list ifall list num list k num qpl huisu list k 1 endendend clc clearall list zeros size 1 4 qpl huisu list 1 2 遞歸算法 以 1 2 3 4 5 為例說明 1 一個數(shù)的全排列就是其本身 2 首先看最后兩個數(shù)4 5 它們的全排列為45和54 即以4開頭的5的全排列和以5開頭的4的全排列 3 再看后三個數(shù)3 4 5 它們的全排列為 345 354 435 453 534 543即以3開頭的和 4 5 的全排列的組合 以4開頭的和 3 5 的全排列的組合和以5開頭的和 3 4 的全排列的組合 為了更容易理解 將數(shù)組中的所有的數(shù)分別與第一個數(shù)交換 這樣就總是在處理后n 1個數(shù)的全排列 可以推斷 設(shè)一組數(shù) 全排列為 1 2345 2 1345 3 2145 4 2315 5 2341 12 345 13 245 14 325 15 342 123 45 124 35 125 34 1234 5 1235 4 r 1 r 3 r 2 r 5 r 4 k 1 5 k 3 5 k 2 5 k 4 5 12345 12354 functionqpl list r ifr length list disp list elsefork r length list list r k list k r qpl list r 1 list r k list k r endend clc clearall list 1 4qpl list 1 八 Matlab計時函數(shù)介紹 1 calendar 返回當(dāng)前日歷2 calendar year month 反回指定的年月日歷 3 calendar data 返回公元0000年算起的天數(shù)的日歷 4 cputime 以秒返回cpu當(dāng)前時間 5 tic toc啟用 關(guān)閉計時器 6 clock yearmonthdayhourminuteseconds 作用 計算運行程序所用的時間 tic 你的Matlab程序 time toc Matlab程序的運行時間 t0 clock 你的Matlab程序 time etime clock t0 Matlab程序的運行時間 t0 cputime 你的Matlab程序 time cputime t0 Matlab程序的運行時間 Matlab計時函數(shù)的調(diào)用 九 程序設(shè)計優(yōu)化 以矩陣為操作主體以向量運算代替循環(huán)運算 提倡矩陣操作tic x 1 fori 1 1000 y i sin x x x 0 1 pi end tocelapsed time 0 0500tic x 1 0 1 pi 1000 pi y sin x tocelapsed time 0 0100 在多重循環(huán)的情況下 建議外循環(huán)執(zhí)行循環(huán)次數(shù)少的 內(nèi)循環(huán)執(zhí)行循環(huán)次數(shù)多的 例 生成5 10000的Hilbert矩陣 其中hi j 1 i j 1 Test2 mticforj 1 10000fori 1 5H i j 1 i j 1 endendtoc Test1 mticfori 1 5forj 1 10000H i j 1 i j 1 endendtoc test1elapsed time 0 2970 test2elapsed time 0 6100 大型矩陣預(yù)先定維大型矩陣動態(tài)的定維會降低程序運行效率 所以 應(yīng)預(yù)先估計變量的最大維數(shù) 用zeros或ones等進(jìn)行預(yù)先定維 tic H zeros 5 10000 fori 1 5forj 1 10000H i j 1 i j 1 endendtoc tic H zeros 5 10000 fori 1 5H i 1 i i 9999 endtoc test1elapsed time 0 2970 test2elapsed time 0 0310 優(yōu)先考慮內(nèi)在函數(shù)采用有效算法提高內(nèi)存使用效率主要的命令 clear 清除變量 pack 將變量存在磁盤再載入 quit 退出Matlab環(huán)境 save 將變量數(shù)據(jù)存入文件 load 將文件數(shù)據(jù)加載進(jìn)入工作空間 十 數(shù)據(jù)類型 1 數(shù)值型double64 bit雙精度single32 bit單精度int3232 bitsignedint1616 bitsignedint88 bitsigneduint3232 bitunsigneduint1616 bitunsigneduint88 bitunsignedformatlong改變小數(shù)點后顯示位數(shù) 字符串用單引號輸入或賦值 字符串作為字符數(shù)組存儲 每個字符占兩個字節(jié)字符串的每個字符都是都是字符數(shù)組的一個元素 s symbolic s symbolic size s ans 18 s 3 ans m 2 字符串型 字符串的轉(zhuǎn)換double字符串轉(zhuǎn)換為數(shù)值代碼char將ASCII轉(zhuǎn)化為字符串num2str數(shù)字轉(zhuǎn)換為字符串int2str整數(shù)轉(zhuǎn)換為字符串mat2str矩陣轉(zhuǎn)換為字符串str2num轉(zhuǎn)換字符串為數(shù)字str2double將字符串矩陣轉(zhuǎn)換成雙精度數(shù)sprintf將數(shù)據(jù)格式化成字符串str2mat 將多個字符串組合為矩陣 doub

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論