matlab程序設計02_第1頁
matlab程序設計02_第2頁
matlab程序設計02_第3頁
matlab程序設計02_第4頁
matlab程序設計02_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Hefei University of TechnologyInstitute of Sound and Vibration ResearchMATLAB 程序設計程序設計_第二講第二講2上機時間安排上機時間安排日期(第幾周)日期(第幾周):9月月23日日 (第(第2周)周) 10月月14日(第日(第5周)周) 10月月21日(第日(第6周)周) 10月月28日(第日(第7周)周)時間時間:周三:周三 5、6、7、8節(jié)節(jié)地點地點:第五和第六機房:第五和第六機房注意注意: 帶鞋套帶鞋套3作業(yè)作業(yè) 已知三角形三邊長度分別為已知三角形三邊長度分別為1、2、 ,求長度,求長度為為1和和2的兩條邊的夾角

2、。的兩條邊的夾角。34本次課主要內容本次課主要內容 數據類型數據類型: : 整數、浮點數、邏輯型整數、浮點數、邏輯型 關系運算、邏輯運算關系運算、邏輯運算 數組:數組: 創(chuàng)建、尋址、查找、刪減等創(chuàng)建、尋址、查找、刪減等5數據類型數據類型6數據類型數據類型基本概念基本概念_二進制二進制 計算機只認識計算機只認識0 0與與1 1在計算機中,各種信息數據(如在計算機中,各種信息數據(如數值、符號、圖形、圖像、數值、符號、圖形、圖像、聲音聲音)的存儲和表示都是采用)的存儲和表示都是采用二進制形式二進制形式進行,其運算和處進行,其運算和處理也都是以二進制信息的運算和處理為基礎。理也都是以二進制信息的運算

3、和處理為基礎。? 計算機中計算機中, ,為什么要使用二進制數為什么要使用二進制數, ,而不使用人們已經習而不使用人們已經習慣的十進制數呢慣的十進制數呢? ?數據:數據:以器件的兩種物理狀態(tài),如晶體管的以器件的兩種物理狀態(tài),如晶體管的“通通”和和“斷斷”等來表示,這種器件只能表示二進制代碼。因等來表示,這種器件只能表示二進制代碼。因此,計算機處理的所有數據都要轉換成二進制代碼。此,計算機處理的所有數據都要轉換成二進制代碼。7數據類型數據類型二進制與十進制的轉化二進制與十進制的轉化二進制與十進制二進制與十進制0=01=12=103=114=1005=1016=1107=1118=10009=100

4、110=101011=101112=1100(1101)2 = 12+12+02+12 = (13)10 1、二進制數、二進制數11011轉換成十進制數是(轉換成十進制數是( )(A)25 (B)26 (C)27 (D)282、十進制數、十進制數23轉換成二進制數是(轉換成二進制數是( )(A)10011 (B)10101 (C)10111 (D)110118數據類型數據類型基本概念基本概念_單位單位位位(Bit)在計算機中,數在計算機中,數據的最小單位是據的最小單位是位,表示一個二位,表示一個二進制數碼進制數碼0或或1字節(jié)(字節(jié)(Byte)8個二進制位構成個二進制位構成1個個字節(jié)(字節(jié)(B)

5、,),1個字節(jié)個字節(jié)可以儲存可以儲存1個英文字個英文字母或半個漢字。字節(jié)母或半個漢字。字節(jié)是存儲空間的基本計是存儲空間的基本計量單位量單位換算關系:換算關系:1 B = 8 bit1 KB = 210 B =1024 B 1 MB = 1024 KB 1 GB = 1024 MB 9數據類型數據類型分類分類數組數組邏輯類邏輯類字符類字符類數值類數值類單元單元結構結構函數句柄函數句柄int8, uint8int16, uint16int32, uint32int64, uint64singledouble整數整數浮點數浮點數10數據類型數據類型浮點數浮點數MATLAB的浮點數分為單精度的浮點數分

6、為單精度(single)和雙精度和雙精度(double)。默認數據類型是:默認數據類型是:double,需要,需要64位存儲空間位存儲空間Single需要需要32位存儲空間位存儲空間直接輸入變量值創(chuàng)建的是直接輸入變量值創(chuàng)建的是double類型,創(chuàng)建類型,創(chuàng)建single類型需要用輸類型需要用輸入類型轉化函數入類型轉化函數.例:例:創(chuàng)建浮點數。創(chuàng)建浮點數。在命令窗口輸入:在命令窗口輸入:x=35; y= single(-26);a=class(x), b=class(y)運行結果運行結果:a =doubleb =single11數據類型數據類型浮點數浮點數浮點數的取值范圍可用函數浮點數的取值范圍

7、可用函數realmax和和realmin查看查看例:例:在命令窗口輸入:在命令窗口輸入:realmax(double), realmin(double)運行結果:運行結果:ans = 3.4028e+038ans = 1.1755e-03812數據類型數據類型整數整數有符號整數類型需要用有符號整數類型需要用1位來表示數據的正負,因此它的位來表示數據的正負,因此它的取值范圍小于無符號整數類型。取值范圍小于無符號整數類型。數據類型數據類型取值范圍取值范圍類型轉化函數類型轉化函數有符號有符號8位整數位整數int8有符號有符號16位整數位整數int16有符號有符號32位整數位整數int32有符號有符號

8、64位整數位整數int64無符號無符號8位整數位整數uint8無符號無符號16位整數位整數uint16無符號無符號32位整數位整數uint32無符號無符號64位整數位整數uint64772 2115152 2131312 2163632 21640 21320 21160 2180 2113數據類型數據類型整數整數如,如,int8的取值范圍:的取值范圍:772 21128+127uint8的取值范圍:的取值范圍:80 210+255int16的取值范圍:的取值范圍:15152 2132768+3276714數據類型數據類型整數整數注意整數中的數據溢出問題注意整數中的數據溢出問題思考下述程序的運

9、行結果思考下述程序的運行結果: :a=125;a=int8(a);b=a+2;c=b+2;15數據類型數據類型整數整數MATLAB的默認數據存儲類型為的默認數據存儲類型為double,利用類型轉化函數,利用類型轉化函數可將數據存儲為整數類型,可將數據存儲為整數類型,如果有小數部分,四舍五入處理如果有小數部分,四舍五入處理。例:例:整數類型的轉化。整數類型的轉化。在命令窗輸入:在命令窗輸入:x=7.503;int8(x)運行結果:運行結果:ans=816數據類型數據類型整數整數某個整數類型的變量某個整數類型的變量只能與該整數類型或只能與該整數類型或double類型類型的的變量進行算術運算,其結果

10、仍為該類型的整數。變量進行算術運算,其結果仍為該類型的整數。例:例:整數類型的算術運算。整數類型的算術運算。在命令窗輸入:在命令窗輸入:x=int16(2)*pi;class(x)運行結果:運行結果:x= 6ans= int1617數據類型數據類型整數整數整數之間的除法不一定得到整數,因此整數之間的除法不一定得到整數,因此MATLAB進行除法運進行除法運算時,首先將兩個數視為雙精度類型,然后將結果轉化為相算時,首先將兩個數視為雙精度類型,然后將結果轉化為相應的整形數據。應的整形數據。uint8(28-5)/uint8(int8(29) 思考下述程序的運行結果:思考下述程序的運行結果:這道題包含

11、三個知識點:這道題包含三個知識點:數據溢出、同類型整數才能運算,數據溢出、同類型整數才能運算,整數除法整數除法18數據類型判斷函數數據類型判斷函數命令命令操作操作whos x顯示數據格式(顯示數據格式(size、class等)等)class(x)顯示數據類型顯示數據類型isnumeric(x)判斷判斷x是否為數值類型是否為數值類型isa(x, integer)判斷判斷x是否為引號中指定的數值類是否為引號中指定的數值類型型(包括其它數值類型)包括其它數值類型)isreal(x)判斷判斷x是否為實數是否為實數例:例: a=int8(3); whos a運行結果:運行結果:Name Size Byt

12、es Class a 1x1 1 int8 19數據類型數據類型邏輯型數據邏輯型數據邏輯類型的變量有兩種取值,邏輯類型的變量有兩種取值,和和,分別用,分別用“1”和和“0”表示。表示。 創(chuàng)建邏輯變量的主要方式:創(chuàng)建邏輯變量的主要方式:(1) 通過輸入通過輸入“true”或或”false”直接創(chuàng)建直接創(chuàng)建(2) 通過關系運算或邏輯運算創(chuàng)建通過關系運算或邏輯運算創(chuàng)建(3) 通過通過MATLAB函數產生邏輯數據函數產生邏輯數據20數據類型數據類型邏輯型數據邏輯型數據例例1: 直接創(chuàng)建邏輯數組。直接創(chuàng)建邏輯數組。在命令窗輸入:在命令窗輸入:x=true, y=false運行結果:運行結果:x= 1y=

13、 0例例2: 通過通過MATLAB函數產生函數產生在命令窗輸入:在命令窗輸入:x=isreal(1+2i)運行結果:運行結果:x= 0在命令窗輸入:在命令窗輸入:class(x) 結果:結果: ans= logical21數據類型數據類型邏輯型數據邏輯型數據關系運算符關系運算符關系運算符能用來比較兩個相同大小的數組,或用來比較一個數組關系運算符能用來比較兩個相同大小的數組,或用來比較一個數組和一個標量。關系運算的結果是邏輯型數據,即為真或假。和一個標量。關系運算的結果是邏輯型數據,即為真或假。運算符運算符說明說明運算符運算符說明說明小于小于大于大于=大于或等于大于或等于=等于等于=不等于不等于

14、22數據類型數據類型邏輯型數據邏輯型數據關系運算舉例:關系運算舉例:(1)4 20(2)4 20(6)4 = 20(7)1= 20)(8)(4 = 20)(4 = 20)23數據類型數據類型邏輯型數據邏輯型數據邏輯運算邏輯運算作為邏輯運算的輸入,作為邏輯運算的輸入,MATLAB把任何非零數值當作真,而把任何非零數值當作真,而只把零當作假。只把零當作假。邏輯運算符邏輯運算符&與與&與,只適用于標量。與,只適用于標量。|或或|或,只適用于標量。或,只適用于標量。非非24數據類型數據類型邏輯型數據邏輯型數據操作符操作符示例示例功能描述功能描述&A&B與:與:A和和B對應元素都為非零時,則對應元素都為

15、非零時,則對應項為對應項為1;有一個為零的項則為;有一個為零的項則為0|A | B或:或:A和和B對應元素只要有一個為非對應元素只要有一個為非零,則對應項為零,則對應項為1;兩個數組均為零;兩個數組均為零時,則為時,則為0 A非:單目運算符,非:單目運算符,A是零時,則對應是零時,則對應項為項為1;A是非零是非零 時,則對應項為時,則對應項為0 邏輯運算符功能描述邏輯運算符功能描述25數據類型數據類型邏輯型數據邏輯型數據邏輯運算舉例:邏輯運算舉例: 2 & 3 13. (2 & 3) | (3 | 0) 2 & 0 14. (0 | 10) & (2 & 0 ) 0 & 50 15. ( 2)

16、 & (3 | 20) 0 & 0 3 | 0 3 | 20 0 | 0 0 | 10 2 100 10001. 026運算符優(yōu)先級運算符優(yōu)先級圓括號圓括號 ()轉置轉置 (.),共軛轉置,共軛轉置 (),乘方,乘方 (.),矩陣乘方,矩陣乘方 ()標量加法標量加法 (+)、減法、減法 (-)、取反、取反 ()乘法乘法 (.*),矩陣乘法,矩陣乘法 (*),右除,右除 (./),左除,左除 (.),矩陣右除,矩陣右除 (/),矩陣左除,矩陣左除 ()加法加法 (+),減法,減法 (-),邏輯非,邏輯非 ()小于小于 (),小于等于,小于等于 (),大于等于,大于等于 (=),等于,等于 (=)

17、,不等于,不等于 (=)數組邏輯與數組邏輯與 (&)數組邏輯或數組邏輯或 (|)邏輯與邏輯與 (&)邏輯或邏輯或 (|)優(yōu)先級從高到低排列優(yōu)先級從高到低排列27數組數組28數組數組基本概念基本概念 數組數組: 按行按行(row)和列和列(column)順序排列的實數或復數的有順序排列的實數或復數的有序集,被稱為數組。序集,被稱為數組。 元素和下標元素和下標:數組中的任何一個數都被稱為這個數組的元素,:數組中的任何一個數都被稱為這個數組的元素,由其所在的行和列標識,這個標識也稱為數組元素的下標或由其所在的行和列標識,這個標識也稱為數組元素的下標或索引。行標識、列標識均從索引。行標識、列標識均從1

18、開始;行標識從上到下遞增;開始;行標識從上到下遞增;列標識從左到右遞增。列標識從左到右遞增。 階數階數: 對對m行、行、n列的數組列的數組A,計為,計為mn階數組階數組A; Matlab將單個值視為將單個值視為11階數組。階數組。29數組數組基本概念基本概念數組數組A1112131415212223242531323334354142434445行行標標識識1234列列 標標 識識1 2 3 4 5雙下標索引雙下標索引方式:方式: A(3, 4)=34, 注意注意行下標在先,列下標在后行下標在先,列下標在后單下標索引單下標索引方式:方式: A(15)=34, 注意注意按列增加按列增加30數組數

19、組基本概念基本概念數組的分類數組的分類 一維數組,也稱為向量一維數組,也稱為向量(vector) ,包含包含: 行向量行向量(row vector)、列向量列向量(column vector) 二維數組二維數組(矩陣矩陣matrix)多維數組多維數組行向量行向量列向量列向量a(2,1)=3a(1,2)=2b(3)=3c(2)=2矩陣矩陣行向量行向量矩陣矩陣列向量列向量行向量行向量矩陣矩陣31數組數組創(chuàng)建創(chuàng)建 一維行向量的創(chuàng)建一維行向量的創(chuàng)建u 方法一:直接輸入,使用方法一:直接輸入,使用方括號方括號“ ”操作符操作符例:例:創(chuàng)建行向量創(chuàng)建行向量 a=1 3 pi 3+5i a=1 3 pi 3

20、+5*i 或或 a=1, 3, pi, 3+5*i 所有的向量元素必須在操作符所有的向量元素必須在操作符“ ”之內;之內;向量元素間用向量元素間用空格或英文的逗點空格或英文的逗點“,”分開。分開。32數組數組創(chuàng)建創(chuàng)建 一維行向量的創(chuàng)建一維行向量的創(chuàng)建u 方法二:使用冒號方法二:使用冒號“:”操作符操作符語法格式:語法格式:x=Start: Increment: EndStart表示向量表示向量x的第一個元素;的第一個元素;向量向量x的最后一個元素不能大于的最后一個元素不能大于End ;Increment可正可負,若負,則必須可正可負,若負,則必須StartEnd;若正,則必;若正,則必須須St

21、artb=1:10b=1 2 3 4 5 6 7 8 9 1033數組數組創(chuàng)建創(chuàng)建 一維行向量的創(chuàng)建一維行向量的創(chuàng)建例:例:鍵入并執(zhí)行鍵入并執(zhí)行c=1:2:10,d=1:2:9, e=15:-5:-10 c=1:2:10 c=1 3 5 7 9d=1:2:9d= 1 3 5 7 9 e=15:-5:-10 e= 15 10 5 0 -5 -10% 注意注意c c和和d d的生成語句不同之處的生成語句不同之處34數組數組創(chuàng)建創(chuàng)建 一維行向量的創(chuàng)建一維行向量的創(chuàng)建u 方法三:利用函數方法三:利用函數linspace語法格式:語法格式:x= linspace(x1, x2, n)該函數生成一個由該函

22、數生成一個由n個元素組成的行向量;個元素組成的行向量;x1為其第一個元素;為其第一個元素;x2為其最后一個元素;為其最后一個元素;x1、x2之間元素的間隔之間元素的間隔=(x2-x1)/(n-1)。如果忽略參數如果忽略參數n,則系統(tǒng)默認生成,則系統(tǒng)默認生成100個元素的行向量。個元素的行向量。例:例:鍵入并執(zhí)行鍵入并執(zhí)行x= linspace(1,2,5)x=1.0000 1.2500 1.5000 1.7500 2.000035數組數組創(chuàng)建創(chuàng)建 列向量的創(chuàng)建列向量的創(chuàng)建u 方法一:直接輸入,使用方括號方法一:直接輸入,使用方括號“ ”操作符,操作符,元素之元素之間使用使用分號間使用使用分號“

23、;”分割分割。例:例:鍵入并執(zhí)行鍵入并執(zhí)行x= 1; 2; 3 x=1 2 3u方法二:使用冒號操作符方法二:使用冒號操作符例:例:鍵入并執(zhí)行鍵入并執(zhí)行x= (1:3) % “ ”表示矩陣的轉置表示矩陣的轉置36數組數組創(chuàng)建創(chuàng)建 二維數組的創(chuàng)建二維數組的創(chuàng)建u 方法一:直接輸入,使用方括號方法一:直接輸入,使用方括號“ ”操作符。操作符。 行與行之間須用分號行與行之間須用分號“;” 間隔間隔 行內元素用空格或逗號行內元素用空格或逗號“,”間隔間隔例:例:鍵入并執(zhí)行鍵入并執(zhí)行a2=1 2 3;4 5 6;7 8 9 a2= 1 2 3 4 5 6 7 8 9例:例:鍵入并執(zhí)行鍵入并執(zhí)行a2=1:

24、3;4:6;7:9 %結果同上結果同上37數組數組創(chuàng)建創(chuàng)建 二維數組的創(chuàng)建二維數組的創(chuàng)建u 方法二:由向量構成二維數組方法二:由向量構成二維數組例:例:a=1 2 3; b=2 3 4; c=a;b;c1=a b;c= c1= 1 2 3 1 2 3 2 3 4 2 3 438數組數組創(chuàng)建創(chuàng)建 二維數組的創(chuàng)建二維數組的創(chuàng)建u 方法三:使用函數生成特殊形式的二維數組方法三:使用函數生成特殊形式的二維數組函函 數數說說 明明zeros產生元素全為產生元素全為0的數組的數組ones產生元素全為產生元素全為1的數組的數組eye產生單位數組產生單位數組rand產生均勻分布的隨機數數組,數值范圍(產生均勻

25、分布的隨機數數組,數值范圍(0,1)randn產生均值為產生均值為0,方差為,方差為1的正態(tài)分布隨機數數組的正態(tài)分布隨機數數組diag獲取數組的對角線元素,也可生成對角數組獲取數組的對角線元素,也可生成對角數組39數組數組創(chuàng)建創(chuàng)建 二維數組的創(chuàng)建二維數組的創(chuàng)建例:例: A=eye(3)A = 1 0 0 0 1 0 0 0 1 A=rand(3)A = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214 A=zeros(3)A = 0 0 0 0 0 0 0 0 0 A=ones(2,3)A = 1 1 1 1 1 1

26、40數組數組創(chuàng)建創(chuàng)建 二維數組的創(chuàng)建二維數組的創(chuàng)建例:例: A=rand(3, 5)A = 0.4218 0.9595 0.8491 0.7577 0.6555 0.9157 0.6557 0.9340 0.7431 0.1712 0.7922 0.0357 0.6787 0.3922 0.7060 b=diag(A)b=0.42180.65570.6787 C=diag(b)C= 0.4218 0 0 0 0.6557 0 0 0 0.678741數組數組階數轉換階數轉換使用使用reshape函數可以實現數組的階數轉換,函數可以實現數組的階數轉換,其調用格式為:其調用格式為:B=reshap

27、e(A, m, n)例:例: a=-4:4 a= -4 -3 -2 -1 0 1 2 3 4 b=reshape(a, 3, 3) b= -4 -1 2 -3 0 3 -2 1 4F數組元素的排列順序,從上到下按列排列,先排第一列,數組元素的排列順序,從上到下按列排列,先排第一列,然后第二列,然后第二列,F要求要求數組的元素總數不變數組的元素總數不變。42數組數組元素尋址元素尋址 元素尋址方法元素尋址方法:使用下標:使用下標例:一維數組尋址例:一維數組尋址a=linspace(1,10,5)a = 1.0000 3.2500 5.5000 7.7500 10.0000a(3) %尋訪尋訪a的第

28、的第3個元素個元素ans = 5.5000a(1 2 5) %尋訪尋訪a的第的第1、2、5個元素組成的子數組個元素組成的子數組ans = 1.0000 3.2500 10.000043數組數組元素尋址元素尋址a(1:3) %尋訪前尋訪前3個元素組成的子數組個元素組成的子數組ans = 1.0000 3.2500 5.5000a(3:-1:1) %由前由前3個元素倒序構成的子數組個元素倒序構成的子數組ans = 5.5000 3.2500 1.0000a(3:end)ans = 5.5000 7.7500 10.0000a(3:end-1)ans = 5.5000 7.750044數組數組元素尋

29、址元素尋址a(1 2 3 5 5 3 2 1) ans = 1.0000 3.2500 5.5000 10.0000 10.0000 5.5000 3.2500 1.0000%數組元素可以被任意重復訪問,構成長度大于原數組的數組元素可以被任意重復訪問,構成長度大于原數組的新數組。新數組。a(6)? Index exceeds matrix dimensions.M下標值超出了數組的維數,導致錯誤下標值超出了數組的維數,導致錯誤a(2.1)? Subscript indices must either be real positive integers or logicals.M下標值只能取正整數或邏輯值下標值只能取正整數或邏輯值45數組數組元素尋址元素尋址例:二維數組尋址例:二維數組尋址 A=magic(4) A= 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 A(2,3) ans= 10 A (1 3, 2 4) ans= 2 13 7 12 A(2,:) ans= 5 11 10 8 A(:, 3) ans= 3 10 6 15 A(3,1:2) ans=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論