資源描述:
《MATLAB語言程序設計.ppt》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、第2章MATLAB語言程序設計基礎2.1MATLAB語言數據類型2.2數值運算2.3符號運算2.4MATLAB語言程序控制結構2.5M文件概述2.6MATLAB圖形繪制2.7實例解析本章目標:了解MATLAB語言程序設計及圖形繪制的基本內容2.1MATLAB語言數據類型MATLAB支持的基本數據類型見下圖。MATLAB的數據類型一、變量與常量變量是任何程序設計語言的基本元素之一,它是指其數值在數據處理的過程中可能會發(fā)生變化的一些數據量名稱。而常量則是指在計算過程中數值不發(fā)生變化的量。MATLAB語言變量有如下特點:①不要求對
2、所使用的變量進行事先聲明,也不需要指定變量類型,MATLAB會自動根據所賦予變量的值或對變量所進行的操作來確定變量的類型;②在賦值過程中,如果變量已經存在,MATLAB會用新值代替舊值,并以新的變量類型代替舊的變量類型。如果沒有事先聲明,MATLAB中的變量指的是局部變量。此外用戶還可以使用global()函數來定義全局變量,全局變量可以用于不同函數文件之間的傳遞,但也正是由于全局變量的這種特性使得程序的可讀性降低甚至容易出錯,所以建議讀者一般不要使用全局變量。MATLAB語言中還有一些預定義的變量,這些變量即稱為常量。下表
3、列出了MATLAB語言中常用的幾個常量。常量名常量值常量名常量值i,jrealmin最小的正浮點數2.2251e-308pirealmax最大的正浮點數1.7977e+308eps浮點運算相對精度2.2204e-016Inf或inf無窮大(如1/0)NaN或nan不定值(如0/0,∞/∞,0×∞)注:NaN與Inf的乘積仍為NaN。二、數值型數據數值型數據包括整數(帶符號和無符號)和浮點數(單精度和雙精度)。在缺省(默認)狀態(tài)下,MATLAB將所有的數都看作是雙精度的浮點數。使用整型變量和單精度變量可以節(jié)約內存空間。三、符號
4、型數據符號型數據是一般科學計算軟件所不具有的,它可以用于公式的推導和數學問題的解析解法。在進行解析運算前需要首先將采用的變量申明為符號變量,這需要用syms()函數實現。例如:symsab;四、字符串字符與字符串運算是各種高級語言不可缺少的部分,它可以用來表示一些MATLAB函數的屬性值,并用于顯示中英文內容等。MATLAB具有強大的字符處理能力。1、字符串的定義MATLAB提供了以下幾種方法來定義一個字符串:①直接用單引號賦值;②利用char()函數結合ASCII碼來生成字符串(因為字符串中的字符是以ASCII碼存儲的,所
5、以大小寫是有區(qū)別的,可以用double()函數或abs()函數查看一個字符串的ASCII碼);③利用字符數組生成字符串。例如:用戶可以在命令窗口中輸入如下語句:s1='Ilovematlab'%方式1s2=char([733210811111810132109971161089798])%方式2s3=['I','','l','o','v','e','','m','a','t','l','a','b']%方式32、字符串的連接字符串可以利用“[]”運算符進行拼接,不過拼接字符串時需要注意以下兩點:若使用“,”作為不同字符串之間
6、的間隔,則相當于擴展字符串成為更長的字符串向量。若使用“;”作為不同字符串之間的間隔,則相當于擴展字符串成為二維或者多維的數組,這時,不同行上的字符串必須具有同樣的長度,此外還可以利用MATLAB提供的函數實現字符串的拼接:strcat()函數實現字符串水平連接strvcat()函數實現字符串垂直連接五、元胞與結構體型數據1、元胞數組用戶可以使用以下兩種方法來建立一個元胞數組。①用賦值語句直接定義;②由cell()函數預先分配存儲空間,然后對細胞的每個元素逐個賦值。元胞數組中元素一般可以用A{m,n}或A(m,n)這兩種方式
7、來調用,它們的不同之處在于:A{m,n}得到的結果的類型為元素自身的類型,而A(m,n)的數據類型為元胞數組類型。2、結構數組結構體是MATLAB中比元胞數組更廣義的數組,它的每一個元素都稱為域,域中可以存放任意類型的數據結構。與其他數組不同的是結構數組用域名來調用域的內容。結構數組具有層次數據結構,它可以描述一個班級下的每個學生的姓名、性別、課程和得分這樣的層次結構。該層次的結構可以存放廣泛的數據類型,如典型的MATLAB圖形結構就是用結構數組來組織的,由屏幕、菜單、圖形和修飾圖形的元素自上而下這樣的層次組成。同元胞數組類
8、似,結構數組的創(chuàng)建也有兩種方法:①用賦值語句直接定義;②用結構函數structure()來直接產生。六、不同數據類型之間的轉化MATLAB提供了豐富的函數來實現常用數據類型間的轉換,具體見下圖。注:上圖中的S2N包括:str2int,str2num,str2mat,sscanf等;N2S包