




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
通信系統中軟件仿真技術主講教師:董穎單位:通信工程系聯系方式:
dongyingnancy@
dongying@資料地址:dongyingnnacy@163.comdy111111
網盤dongying
計算機仿真和輔助設計的基本概念一、計算機輔助設計與仿真的概念1、計算機輔助設計的概念計算機輔助設計(CAD)技術是利用計算機高速而精確的計算能力、大容量存儲和處理數據的能力,結合設計者的綜合分析、邏輯判斷及創造性思維,用以加快設計進程、縮短設計周期、提高設計質量的技術。說明:計算機輔助設計從廣義上來講它包含了計算機仿真的內容,從狹義上說它的主要工作是利用計算機的運算能力來處理設計者手工處理所遇到的不便與繁瑣。2、計算機仿真的概念仿真的定義仿真的基本思想是利用物理的或數學的模型來類比模仿現實過程,以尋求對真實過程的認識。它所遵循的基本原則是相似性原理。計算機仿真的定義計算機仿真是基于所建立的系統仿真模型,利用計算機對系統進行分析與研究的方法。(1)、模型的定義模型是對現實系統有關結構信息和行為的某種形式的描述,是對系統的特征與變化規律的一種定量抽象,是人們認識事物的一種手段或工具。(2)、模型的分類A、物理模型指不以人的意志為轉移的客觀存在的實體,如:飛行器研制中的飛行模型;船舶制造中的船舶模型等。B、數學模型是從一定的功能或結構上進行相似,用數學的方法來再現原型的功能或結構特征。3、計算機仿真模型(3)仿真模型指根據系統的數學模型,用仿真語言轉化為計算機可以實施的模型。4、計算機仿真的三要素及基本步驟(內容)(1)、三要素系統:研究的對象模型:系統的抽象計算機:工具與手段
(2)、基本步驟包括三個基本的內容:建模 仿真實驗結果分析二、 仿真的分類.1、按模型分類(1)、物理仿真:采用物理模型,有實物介入!具有效果逼真,精度高等優點,但造價高或耗時長,大多在一些特殊場合下采用(如導彈、衛星一類飛行器的動態仿真,發電站綜合調度仿真與培訓系統等),具有實時性、在線的特點。(2)、數學仿真:采用數學模型在計算機上進行,具有非實時性、離線的特點,經濟、快速、實用。2、按計算機類型分類(1)模擬仿真:采用數學模型,在模擬計算機上進行的實驗研究。50年代描述連續物理系統的動態過程比較自然、逼真,具有仿真速度快、失真小、結果可靠的優點,但受元器件性能影響,仿真精度較低,對計算機控制系統的仿真較困難,自動化程度低。模擬計算機的核心是運算部分,它由我們熟知的“模擬運算放大器”為主要部件所構成。(2)數字仿真:采用數學模型,在數字計算機上借助于數值計算方法所進行的仿真實驗。60年代計算與仿真的精度較高。理論上計算機的字長可以根據精度要求來“隨意”設計,因此其仿真精度可以是無限,但是由于受到誤差積累、仿真時間等因素影響,其精度也不易定得太高。對計算機控制系統的仿真比較方便。仿真實驗的自動化程度較高,可方便地實現顯示、打印等功能。計算速度比較低,在一定程度上影響到仿真結果的可信度。但隨著計算機技術的發展,“速度問題”會在不同程度上有所改進與提高。數字仿真沒有專用的仿真軟件支持,需要設計人員用高級程序語言編寫求解系統模型及結果輸出的程序。(3)混合仿真:結合了模擬仿真與數字仿真。(4)現代計算機仿真:采用先進的微型計算機,基于專用的仿真軟件、仿真語言來實現,其數值計算功能強大,使用方便,易學。80年代以后三、應用仿真技術的意義1、經濟大型、復雜系統直接實驗是十分昂貴的,如:空間飛行器的一次飛行實驗的成本約在1億美元左右,而采用仿真實驗僅需其成本的1/10~1/5,而且設備可以重復使用。2、安全某些系統(如載人飛行器、核電裝置等),直接實驗往往會有很大的危險,甚至是不允許的,而采用仿真實驗可以有效降低危險程度,對系統的研究起到保障作用。3、快捷提高設計效率:比如電路設計,服裝設計等等。4、具有優化設計和預測的特殊功能四、仿真技術的發展趨勢
對一些真實系統進行結構和參數的優化設計是非常困難的,這時仿真可以發揮它特殊的優化設計功能。在非工程系統中(如社會、管理、經濟等系統),由于其規模及復雜程度巨大,直接實驗幾乎不可能,這時通過仿真技術的應用可以獲得對系統的某種超前認識。1、硬件方面:基于多CPU并行處理技術的全數字仿真將有效提高仿真系統的速度,大大增強數字仿真的實時性。2、應用軟件方面:直接面向用戶的數字仿真軟件不斷推陳出新,各種專家系統與智能化技術將更深入地應用于仿真軟件開發之中,使得在人機界面、結果輸出、綜合評判等方面達到更理想的境界。五、計算機仿真軟件3、分布式數字仿真:充分利用網絡技術,協調合作,投資少,效果好。4、虛擬現實技術:綜合了計算機圖形技術、多媒體技術、傳感器技術、顯示技術以及仿真技術等多學科,使人置身于真實環境之中。1、仿真軟件的發展(1)、程序編程階段所有問題(如:微分方程求解、矩陣運算、繪圖等)都是用高級算法語言(如C、FORTRAN等)來編寫。(2)、程序軟件包階段出現了“應用子程序庫”。(3)、交互式語言階段(仿真語言)仿真語言可用一條指令實現某種功能,如“系統特征值的求解”,使用人員不必考慮什么算法,以及如何實現等低級問題。(4)、模型化圖形組態階段符合設計人員對基于模型圖形化的描述。2、幾種仿真軟件(1)PSPICE、ORCAD:通用的電子電路仿真軟件,適合于元件級仿真。(2)SYSTEMVIEW:系統級的電路動態仿真軟件(3)MATLAB和SIMULINK:具有強大的數值計算能力,包含各種工具箱,其程序不能脫離MATLAB環境而運行,所以嚴格講,MATLAB不是一種計算機語言,而是一種高級的科學分析與計算軟件。SIMULINK是MATLAB附帶的基于模型化圖形組態的動態仿真環境。(4)NS2:NS2是一種針對網絡技術的源代碼公開的、免費的軟件模擬平臺,研究人員使用它可以很容易的進行網絡技術的開發且模塊豐富,幾乎涉及到了網絡技術的所有方面。NS2是目前學術界廣泛使用的一種網絡模擬軟件。(5)NS3:是一款面向網絡系統的離散事件仿真軟件,源代碼公開的一款免費軟件,將逐步取代目前廣泛應用的NS-2網絡模擬軟件。是由C++和Python語言編寫的,可作為源代碼發布并適用以下系統:Linux,Unix
variants,OS
X以及Windows平臺上運行的Cygwin或MinGW。(/)(6)OPNET:OPNET網絡仿真軟件是MIL3公司的產品,MIL3公司是由MIT的幾位教師在1986年創建的,他們把在MIT的研究成果產品化,開發出了MIL3公司的第一個產品Modeler,并在隨后將其擴充、完善為OPNET產品系列。是一個大型的通信與計算機網絡仿真軟件包,為通信網和分布式系統的模擬提供了詳盡全方位的支持。第一講MATLAB概述與運算基礎MATLAB語言是一種廣泛應用于工程計算及數值分析領域的新型高級語言,自1984年由美國MathWorks公司推向市場以來,歷經近三十年的發展與競爭,現已成為國際公認的最優秀的工程應用開發環境。目前其版本已經到Matlab2010b,其功能強大、簡單易學、編程效率高,深受廣大科技工作者的歡迎。1980年前后,MATLAB的雛形:LINPACK和EISPACK的接口程序。1984年成立MathWorks公司,推出MATLAB第1版(DOS版)。1992年推出4.0版。1994年推出4.2版。1997年推出5.0版。1999年初推出5.3版。2001年7月,推出最新版本6.1版。2004年,推出6.5版2005年,推出7.0版2006年,每年3月和9月分別推出兩版分為a和b版如2006a和2006b版。MATLAB將高性能的數值計算和可視化功能集成在一起,并提供了大量的內置函數,從而被廣泛地應用于科學計算、控制系統和信息處理等領域的分析、仿真和設計工作,而且利用MATLAB產品的開放式結構,可以很容易地對MATLAB的功能進行擴充,從而在不斷深化問題的認識的同時,不斷完善MATLAB產品以提高產品自身的競爭能力。其功能為:2023年12月15日第18頁一、Matlab的主要功能(1/9)
數學計算
MATLAB提供的數學算法凝聚了世界上諸多科學家的辛勤勞動,保證了數學計算精確的結果。MATLAB數學計算的內容有:線性代數和矩陣分析與變換數據處理與基本統計快速傅里葉變換(FFT),相關與協方差分析稀疏矩陣運算三角及其它初等函數Bessel、beta及其它特殊函數線性方程及微分方程求解多維數組的支持2023年12月15日第19頁Matlab的主要功能(2/9)Matlab的主要功能(3/9)開發工具MATLABEditor——該工具提供了標準的編輯、調試M語言算法的基本環境,例如可以在該工具中定義斷點并且進行單步調試。M-LintCodeChecker——該工具用于分析M語言代碼并且向開發人員提出改善代碼性能和維護性的建議。MATLABProfiler——該工具可以計算每行M語言代碼執行消耗的時間;DirectoryReports——該工具掃描當前目錄下所有的M語言,并且報告文件的代碼效率、文件的相關性以及代碼覆蓋度等信息2023年12月15日第20頁2023年12月15日第21頁數據的可視化MATLAB提供了功能豐富的數據可視化功能函數,其中包括:二維、三維繪圖,包括離散數據繪圖、直線圖、封閉折線圖(polygon)、網格圖、等值線圖、極坐標圖、直方圖等豐富多樣的數據可視化手段;交互的文本注釋編輯能力;提供文件I/O,用于顯示繪制圖形,支持多種圖像文件格式例如:EPS,TIFF,JPEG,PNG,BMP,HDF,AVI,PCX等;軟硬件支持的OpenGL渲染;支持動畫和聲音;多種光源設置、照相機和透視控制;對圖形界面元素提供了交互式可編程的控制方法——句柄圖形;能夠打印或者導出數據圖形文件到其它的應用程序中,例如Word和PowerPoint,共享開發的結果。MATLAB繪制的圖形如:Matlab的主要功能(4/9)Matlab的主要功能(5/9)交互式編輯創建圖形MATLAB提供了交互式工具用于設計、修改圖形窗口,在MATLAB的圖形窗口中工程師可以完成:拖放數據集到窗體;修改圖形窗體中任意對象的屬性;放大、旋轉、平移、修改攝像機或者光線的位置、角度等;增加注釋和數據標注;將圖形窗口文件轉變為M代碼。2023年12月15日第22頁Matlab的主要功能(6/9)集成的算法開發編程語言和環境
MATLAB提供了一種簡便易用的算法開發語言——M語言,直接利用MATLAB提供的基本數學、圖形能力,開發工程師自定義的算法。幾乎所有的MATLAB工具箱函數都是利用M語言開發的。可視化的程序編輯器/調試器;語法風格類似C語言,容易掌握;JIT加速器加快程序運行速度;多維向量及工程師自定義結構,以及數組、結構、單元數組等多種數據結構;支持面向對象編程(OOP);流程控制(for,while,if,switch);字符變換;ASCII及二進制文件輸入輸出;靈活的開發性能夠與C,C++,FORTRAN,Java,COM組件以及Excel集成使用;支持使用底層I/O手段獲取數據,操作數據文件;MATLAB數據文件——MAT文件支持跨平臺應用。2023年12月15日第23頁Matlab的主要功能(7/9)圖形用戶界面開發環境——GUIDE應用程序向導簡化開發步驟;下拉及彈出式菜單;支持多種界面元素:按鈕(PUSHBUTTON),單選按鈕(RADIOBUTTON),復選框(CHECKBOXES),滑塊(SLIDERS)、文本編輯框(EDITBOX)和ActiveX控件;鼠標事件(MouseEvent)和響應函數(drawback);利用響應函數響應工程師的操作。2023年12月15日第24頁Matlab的主要功能(8/9)
開放性、可擴展性強
M-語言函數文件是可見的MATLAB程序,所以工程師可以查看源代碼。開放的系統設計使工程師能夠檢查算法的正確性,修改已存在的函數,或者加入自己的新函數,包括:使用C或者FORTRANMEX文件集成已有的/FORTRAN算法;在C或FORTRAN程序中調用MATLAB函數;在MATLAB中使用Java語言編程;提供COM服務和COM控制支持;輸入輸出各種MATLAB及其它標準格式的數據文件;對計算機串口進行輸入輸出操作;加載通用DLL文件;創建圖文并貌的技術文檔,包括MATLAB圖形、命令,并可通過Word、HTML輸出;2023年12月15日第25頁Matlab的主要功能(9/9)專業應用工具箱
MATLAB的工具箱加強了對工程及科學中特殊應用的支持。工具箱也和MATLAB一樣是完全工程師化的,可擴展性強。將某個或某幾個工具箱與MATLAB聯合使用,可以得到一個功能強大的計算組合包,滿足工程師的特殊要求。于是,MATLAB產品被廣泛應用于下列領域:測量測試數學建模與分析信號處理財經金融建模與分析圖像處理與地理信息MATLAB應用程序發布2023年12月15日第26頁二、MATLAB集成環境的組成5)MATLAB
API(ApplicationProgramInterface)1)MATLAB語言
2)MATLAB工作環境
3)句柄圖形
4)MATLAB數學函數庫
Mathworks公司主頁三、Matlab軟件安裝
Matlab組件的選擇界面組件名稱作用1、必須選擇的本原性組件MATLAB最核心部分,就是Matlab環境,可以對各類數據進行操作、運算和可視化2、最常選的通用性工具包組件SymbolicMath符號類數據的操作和計算3、其他通用性工具包組件Simulink不用編寫程序,利用方塊圖實現建模和仿真Optimization包含求函數零點、極值、規劃等優化程序MatlabCompiler把Matlab的M文件編譯成DLL文件或EXE程序MatlabC/C++MathLibrary與Compiler配合使用Matlabc/C++GraphicLibrary與Compiler配合使用4、常用專業性工具包組件ControlSystem,SignalProcessing,Statistics如涉及控制、信息處理、統計分析的工具包等5、其他專業性工具包組件Stateflow,……與Simulink配合使用,用于大型、復雜的動態系統的建模、分析、仿真四、MATLAB的界面2023年12月15日第31頁工作區窗口命令歷史窗口命令窗口工具欄菜單欄MATLAB的主界面MATLAB的工具欄新建打開剪切復制粘貼撤銷恢復Simulink:打開Simulink,Simulink是一個用來對動態系統進行建模、仿真和分析的軟件包,它支持連續、離散及兩者混合的線性和非線性系統,也支持具有多種采樣頻率的系統。Guide:快速啟動Guide,Guide全稱為GraphicalUserInterfacedevelopmentenvironment,用于輔助設計圖形用戶接口,使用該工具可以簡化GUI編程。Profiler:快速啟動Profiler工具,Profiler工具能夠分析出程序運行時間消耗情況,用于幫助分析、改進M文件Help:打開MATLAB幫助;CurrentDirectory:設置當前目錄MATLAB的窗口——命令窗口2023年12月15日第33頁MATLAB命令窗口。打開MATLAB時,命令窗口自動顯示于MATLAB界面中。運算提示符,表示MATLAB處于準備狀態,用戶可以輸入命令,按下回車鍵執行,并在命令窗口中顯示運行結果MATLAB的窗口——命令歷史窗口默認情況下命令歷史窗口位于左下角,顯示用戶曾經輸入過的命令,并顯示輸入的時間,方便用戶查詢。對于命令歷史窗口中的命令,用戶可以點擊右鍵進行相應的操作。用戶可以雙擊再次執行命令窗口中的命令。
2023年12月15日第34頁命令歷史窗口MATLAB的窗口——工作區窗口工作區窗口與當前路徑窗口共享一塊空間,可以通過標簽顯示或隱藏。工作區窗口中顯示當前工作區中的所有變量及其大小和類型等。通過工作區可以對這些變量進行管理。其中包含了工作區工具欄和顯示窗口。通過工具欄可以新建或刪除變量、導入導出數據、繪制變量的圖形等。另外右鍵單擊變量名可以對該變量進行操作。2023年12月15日第35頁工作區窗口MATLAB的窗口——當前路徑窗口當前路徑窗口顯示當前路徑下的所有文件和文件夾及其相關信息,并且可以通過當前路徑工具欄或右鍵菜單對這些文件進行操作。2023年12月15日第36頁當前路徑窗口MATLAB的路徑搜索(1/3)路徑設置
除MATLAB默認的搜索路徑外,用戶可以設置搜索路徑。設置方法為:選擇MATLAB窗口中的File|SetPath命令,進入路徑搜索對話框。2023年12月15日第37頁添加選中目錄添加選中目錄及其子目錄五、MATLAB的路徑功能MATLAB的路徑搜索(2/3)路徑設置函數path命令在命令窗口中輸入path命令可以查看MATLAB中的搜索路徑:>>path MATLABPATH C:\MATLAB\R2007b\toolbox\matlab\general C:\MATLAB\R2007b\toolbox\matlab\ops C:\MATLAB\R2007b\toolbox\matlab\lang C:\MATLAB\R2007b\toolbox\matlab\elmat ……path('newpath')命令改變搜索路徑2023年12月15日第38頁MATLAB的路徑搜索(3/3)MATLAB的搜索順序當在命令窗口中或者一個M文件中輸入一個元素名稱時,MATLAB按照下面的順序搜索該元素的意義,以元素foo為例:1)查找工作區中是否存在名為foo的變量;2)在當前路徑中查找是否存在名foo.m的文件;3)按照順序查找搜索路徑中是否存在該文件。如果存在多個名為foo.m的文件,則調用首先查到的文件。因此,在為變量和函數命名時,需考慮MATLAB的路徑搜索順序,合理為變量和函數命名,保證程序的正確運行。2023年12月15日第39頁2023年12月15日第40頁簡單的數學運算(1/5)最簡單的計算器使用法直接輸入法存儲變量法六、數學運算2023年12月15日第41頁簡單的數學運算(2/5)表達式書寫規則在大多數情況下,MATLAB對空格不予處理,因此在書寫表達式時,可以利用空格調整表達式的格式,使表達式更易于閱讀。在MATLAB表達式中,遵守四則運算法則,與通常法則相同。即運算從左到右進行,乘法和除法優先于加減法,指數運算優先于乘除法,括號的運算級別最高;在有多重括號存在的情況下,從括號的最里邊向最外邊逐漸擴展。需要注意的是,在MATLAB中只用小括號代表運算級別,中括號只用于生成向量和矩陣,花括號用于生成單元數組。2023年12月15日第42頁簡單的數學運算(3/5)MATLAB的數學運算符需要注意的是,右除和左除的意義并不相同。右除為常規的除法,而左除的意義為:a\b=b/a。符號功能實例+加法3+5=8-減法3-5=-2*矩陣乘法3*5=15.*乘,點乘,即數組乘法/右除3/5=0.6000./數組右除\左除3\5=1.6667.\數組左除^乘方3^5=243.^數組乘方'矩陣共軛轉置.'矩陣轉置2023年12月15日第43頁簡單的數學運算(4/5)
標點符號的使用在MATLAB中,標點符號有著充分的意義,可以用標點符號進行運算,或者標點符號可以包含特定的意義。標點符號定義標點符號定義分號(;)數組行分隔符;取消運行顯示點(.)小數點;結構體成員訪問逗號(,)數組列分隔符;函數參數分隔符省略號(…)續行符冒號(:)在數組中應用較多,如生成等差數列引號(’’)定義字符串圓括號(())指定運算優先級;函數參數調用;數組索引等號(=)賦值語句方括號([])定義矩陣感嘆號(!)調用操作系統運算花括號({})定義單元數組百分號(%)注釋語句的標識2023年12月15日第44頁簡單的數學運算(5/5)分號(;)分號用于區分數組的行,或者用于一個語句的結尾處,取消運行顯示。百分號(%)該符號用于在程序文本中添加注釋,增加程序的可讀性。百分號之后的文本都將視作注釋,系統不對其進行編譯。2023年12月15日第45頁七、MATLAB中的常用數學函數MATLAB提供了一系列的函數支持基本的數學運算,這些函數中的大多數調用格式和我們平時的書寫習慣一致,方便用戶記憶和書寫。2023年12月15日第46頁常用的操作命令和快捷鍵(1/3)為方便用戶操作,MATLAB中定義了一些快捷鍵。掌握一些常用的操作命令和快捷鍵,可以使得對MATLAB的操作更加便利。2023年12月15日第47頁常用的操作命令和快捷鍵(2/3)常用的操作命令命令功能命令功能cd顯示或改變工作目錄hold圖形保持命令clc清空命令窗口load加載指定文件中的變量clear清除工作區中的變量pack整理內存碎片clf清除圖形窗口path顯示搜索目錄diary日志文件命令quit退出MATLABdir顯示當前目錄下文件save保存內存變量disp顯示變量或文字的內容type顯示文件內容echo命令窗口信息顯示開關2023年12月15日第48頁常用的操作命令和快捷鍵(3/3)常用的操作快捷鍵快捷鍵功能快捷鍵功能↑(Ctrl+p)調用上一行Home(ctrl+a)移動到命令行開頭↓(Ctrl+n)調用下一行End(ctrl+e)移動到命令行結尾←(Ctrl+b)光標左移一個字符Ctrl+Home移動到命令窗口頂部→(Ctrl+f)光標右移一個字符Ctrl+End移動到命令窗口底部Ctrl+←光標左移一個單詞Shift+Home選中光標和表達式開頭之間的內容Ctrl+→光標右移一個單詞Shift+End選中光標和表達式結尾之間的內容Esc取消當前輸入行Ctrl+k剪切光標和表達式結尾之間的內容2023年12月15日第49頁數據類型操作函數其中的’type’包括’numeric’、’integer’、’float’和所有的數據類型。函數描述double創建或轉化為雙精度類型single創建或轉化為單精度類型int8,int16,int32,int64創建或轉化為相應的有符號整數類型uint8,uint16,uint32,uint64創建或轉化為相應的無符號整數類型isnumeric判斷是否為整數或浮點數,是則返回true(或者1)isinteger判斷是否為整數,是則返回true(或者1)isfloat判斷是否為浮點數,是則返回true(或者1)isa(x,’type’)判斷是否為‘type’
指定的類型,是則返回true(或者1)cast(x,’type’)設置x的類型為’type’intmax(‘type’)’type’
類型的最大整數值intmin(‘type’)’type’
類型的最小整數值realmax(‘type’)’type’
類型的最大浮點實數值realmin(‘type’)’type’
類型的最小浮點實數值eps(‘type’)’type’
類型eps值eps(‘x’)變量x的eps值八、數據類型2023年12月15日第50頁整數MATLAB支持8位、16位、32位和64位的有符號和無符號整數數據類型。上述整數數據類型除了定義范圍不同外,具有相同的性質。數據類型描述uint88位無符號整數,范圍為0~255(即0~28-1)int88位有符號整數,范圍為-128~127(即-27~27-1)uint1616位無符號整數,范圍為0~65535(即0~216-1)int1616位有符號整數,范圍為-32768~32767(即-215~215-1)uint3232位無符號整數,范圍為0~4294967295(即0~232-1)int3232位有符號整數,范圍為-2147483648~2147483647(即-231~231-1)uint6464位無符號整數,范圍為0~18446744073709551615(即0~264-1)int6464位有符號整數,范圍為-9223372036854775808~9223372036854775807(即-263~263-1)2023年12月15日第51頁定義整數變量定義變量:由于MATLAB默認的數據類型為雙精度型,因此在定義整形變量時,需指定變量的數據類型。2023年12月15日第52頁整數運算(1/2)運算:類型相同的整數之間可以進行運算,返回相同類型的結果。在進行加、減和乘法運算時比較簡單,在進行除法運算時稍微復雜一些,因為在多精度情況下,整數的除法不一定能得到整數的結果。在進行除法時,MATLAB首先將兩個數視為雙精度類型進行運算,然后將結果轉化為相應的整形數據。MATLAB中不允許進行不同整數類型之間的運算。2023年12月15日第53頁整數運算(2/2)由于每種整數數據類型都有相應的取值范圍,因此數學運算有可能產生結果溢出。MATLAB利用飽和處理處理此類問題,即當運算結果超出了此類數據類型的上限或下限時,系統將結果設置為該上限或下限。例2-10整數運算中的數據溢出>>x=int8(100);>>y=int8(90);>>z=x+yz=127>>x-3*yans=-27>>x-y-y-yans=
-128結果溢出上限,因此結果為1273*y溢出上限,結果為127,繼續計算,得到最后結果-27計算x-y-y-y時,從左到右進行計算,結果溢出下限,因此結果為-1282023年12月15日第54頁浮點數(1/2)MATLAB的默認數據類型是雙精度類型(double)。為了節省存儲空間,MATLAB也支持單精度數據類型的數組。單精度和雙精度數據類型的取值范圍和精度可以通過下例進行查看2023年12月15日第55頁浮點數(2/2)例
單精度和雙精度數據類型的取值范圍和精度>>realmin('single')ans=1.1755e-038>>realmax('single')ans=3.4028e+038>>eps('single')ans=1.1921e-007>>realmin('double')ans=2.2251e-308>>realmax('double')ans=1.7977e+308>>eps('double')ans=2.2204e-016創建單精度類型的變量時需要聲明變量類型,與創建整型變量類似。單精度數據類型的數據進行運算時,返回值為單精度。2023年12月15日第56頁復數復數由兩個部分組成:實部和虛部。基本虛數單位等于,在MATLAB中虛數單位由i或者j表示。MATLAB中可以通過兩種方法創建復數,第一種方法為直接輸入法,另一種創建復數的方法為通過complex函數。2023年12月15日第57頁復數complex函數的調用方法如下。c=complex(a,b),返回結果c為復數,其實部為a,虛部為b。輸入參數a和b可以為標量,或者維數、大小相同的向量、矩陣或者多維數組,輸出參數和a和b的結構相同。a和b可以有不同的數據類型,當a和b為各種不同的類型時,返回值分別為:當a和b中有一個為單精度時,返回結果為單精度;如果a和b其中一個為整數類型,則另外一個必須有相同的整數類型,或者為雙精度型,返回結果c為相同的整數類型。c=complex(a),只有一個輸入參數,返回結果c為復數,其實部為a,虛部為0。但是此時c的數據類型為復數。2023年12月15日第58頁邏輯數組(1/5)邏輯數據類型通過1和0分別表示邏輯真和邏輯假。一些MATLAB函數或操作符會返回邏輯真或邏輯假表示條件是否滿足。如表達式(5*10)>40返回邏輯真。在MATLAB中,存在邏輯數組,如下面的表達式返回邏輯數組:>>[3040506070]>40ans=001112023年12月15日第59頁邏輯數組(2/5)邏輯數組的創建創建邏輯數組的最簡單的方法為直接輸入元素的值為true或者false邏輯數組也可以通過邏輯表達式生成2023年12月15日第60頁邏輯數組(3/5)MATLAB中返回邏輯值的函數和操作符函數說明true,false將輸入參數轉化為邏輯值logical將數值轉化為邏輯值&(and),|(or),~(not),xor,any,all邏輯操作符&&,||“并”和“或”的簡寫方式==(eq),~=(ne),<(lt),>(gt),<=(le),>=(ge)關系操作符所有的is*類型的函數,cellfun判斷函數strcmp,strncmp,strcmpi,strncmpi字符串比較2023年12月15日第61頁邏輯數組(4/5)邏輯數組的應用用于條件表達式 如果僅當條件成立時執行某段代碼,可以應用邏輯數組進行判斷和控制用于數組索引 在MATLAB中支持通過一個數組對另一個數組進行索2023年12月15日第62頁邏輯數組(5/5)邏輯數組的判斷MATLAB中提供了一組函數用于判斷數組是否為邏輯數組函數功能whos(x)顯示數組x的元素值及數據類型islogical(x)判斷數組x是否為邏輯數組,是則返回真isa(x,'logical')判斷數組x是否為邏輯數組,是則返回真class(x)返回數組x的數據類型cellfun('islogical',x)判斷單元數組的每個單元是否為邏輯值2023年12月15日第63頁各種數據類型之間的轉換在MATLAB中,各種數據類型之間可以互相轉化,轉化方式為:1)datatype(variable),其中datatype為目標數據類型,variable為待轉化的變量;2)cast(x,’type’),將x的類型轉化為’type’指定的類型。轉化時,如果由高精確度數據類型轉化為低精確度數據類型,則對數據進行四舍五入;如果由定義范圍大的數據類型轉化為定義范圍小的數據類型,則返回目標數據類型的上限或下限。2023年12月15日第64頁變量MATLAB的變量命名規則與其他計算機語言類似,這一節介紹MATLAB的命名規則。首先,變量名必須是一個單一的詞,不能包含空格,另外其命名必須符合下列規則:(1)變量名區分大小寫。如pi和Pi是兩個不同的變量。在命令窗口中輸入如下的命令,查看其結果。(2)變量名長度不超過63個字符,超過的部分將會被忽略。(3)變量名必須以字母開始,其后可以為字母、數字或者下劃線,但不能包括空格、標點符號。MATLAB中的變量名不支持其他符號,因為其他符號在MATLAB中具有特殊的意義
ans用于結果的缺省變量名;pi圓周率eps計算機的最小數;
inf無窮大i或ji=j=-1的開方;NaN不定量
預定義變量(Predefinedvariable)對于預定義變量,MATLAB不需要任何類型的說明或維數語句,每當MATLAB啟動,這些變量就被產生,并自動分配內存空間。
2023年12月15日第66頁操作符關系運算符MATLAB的關系運算符能用來比較兩個相同大小的數組,或用來比較一個數組和一個標量。MATLAB的關系運算符包括所有常用的比較運算符,如表所示
運算符說明運算符說明<小于<=小于或等于>大于>=大于或等于==等于~=不等于2023年12月15日第67頁邏輯運算符邏輯運算符主要包括“與”、“或”和“非”。使用邏輯運算符可以將多個表達式組合在一起,或者對關系表達式取反。MATLAB中的邏輯運算符如表所示。在邏輯運算中,確認非零元素為真,用1表示,零元素為假,用0表示。運算符描述&與&&與,只適用于標量。a&&b,當a的值為假時,則忽略b的值|或||或,只適用于標量。a||b,當a的值為真時,則忽略b的值~非2023年12月15日第68頁運算符優先級MATLAB在執行含有關系運算和邏輯運算的數學運算時,同樣遵循一套優先級原則。MATLAB首先執行具有較高優先級的運算,然后執行具有較低優先級的運算;如果兩個運算的優先級相同,則按從左到右的順序執行。MALTAB中各運算符的優先級順序如表所示,表中按照優先級從高到低的順序排列各運算符。在算術、關系、邏輯運算中,算術運算優先級最高,邏輯運算優先級最低。運算符圓括號()轉置(.’),共軛轉置(‘),乘方(.^),矩陣乘方(^)標量加法(+)、減法(-)、取反(~)乘法(.*),矩陣乘法(*),右除(./),左除(.\),矩陣右除(/),矩陣左除(\)加法(+),減法(-),邏輯非(~)冒號運算符(:)小于(<),小于等于(<=),大于(>),大于等于(>=),等于(==),不等于(~=)數組邏輯與(&)數組邏輯或(|)邏輯與(&&)邏輯或(||)2023年12月15日第69頁常用的基本數學函數位操作函數邏輯運算函數集合函數時間與日期函數
工作區:接受MATLAB命令的內存區域,存儲著命令編輯區輸入的命令和創建的所有變量值。查看工作區變量:
who或whos顯示當前工作區中的所有變量
clear清除工作區中的所有變量clear(變量名)清除指定的工作區變量九、工作區保存工作區變量:quit
或
單擊右上角的“
”按鈕,退出工作區save文件名[變量名表][-append][-ascii]
將當前工作區的變量儲存在一個MAT-文件中
-append表示將變量追加到MAT文件中
-ascii表示按ASCII格式處理,省略時表示以二進制格式處理load文件名[變量名表][-ascii]
調出一個MAT-文件內存變量的查閱和刪除(1)內存變量查閱、刪除的指令操作法在指令窗中運用who,whos查閱內存變量who
Yourvariablesare:ABnumberDRXYZZyBC
DDXYxNameSizeBytesClassA2x2230cellarrayB1x1264structarrayBnumber1x18doublearrayC2x2408symobjectD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司月度獎懲活動方案
- 公司消防比賽活動方案
- 公司盆栽種植活動方案
- 公司相親對象活動方案
- 公司規模科普活動方案
- 公司現場招聘會策劃方案
- 公司組織溫泉玩活動方案
- 公司活動方案獎勵方案
- 公司行政生日會策劃方案
- 公司教育活動策劃方案
- 急性腦卒中識別和急救流程2
- 當代世界政治經濟與國際關系 鄧澤宏課件第三章 奉行全球戰略的美國
- 2023年沈陽職業技術學院高職單招(數學)試題庫含答案解析
- 2022版義務教育(勞動)課程標準(含2022年修訂部分)
- 洛陽市中小學教師師德師風考核內容和評分細則
- 承包商資質審查表
- 應急救援物資檢查維護保養記錄表(月度)
- 機械原理課程設計-沖壓機構及送料機構設計說明書
- 押金收據條(通用版)
- [甘肅]最新甘肅省造價文件匯編(310頁)
- 鋼框架結構計算書畢業設計
評論
0/150
提交評論