《matlab數(shù)據(jù)類型》PPT課件.ppt
《《matlab數(shù)據(jù)類型》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《matlab數(shù)據(jù)類型》PPT課件.ppt(69頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、MATLAB程序設(shè)計(jì),第3章 數(shù)據(jù)類型,MATLAB中共有15種基本數(shù)據(jù)類型和2種自定義類型。,MATLAB數(shù)據(jù)類型關(guān)系,數(shù)組,,,,,,,,,,邏輯類,字符類,數(shù)值類,單元,結(jié)構(gòu),,用戶類,Java類,函數(shù)句柄,,,,,,int8,uint8 int16,uint16 int32,uint32 int64,uint64,single,double,3.1 數(shù)值類型,MATLAB的默認(rèn)數(shù)據(jù)存儲類型為雙精度浮點(diǎn)類型(double),,可以利用轉(zhuǎn)化函數(shù)存儲為其它類型,,所有的數(shù)值類型數(shù)據(jù),均可作為數(shù)組的索引。,一.整數(shù),MATLAB中有4種有符號整數(shù)類型,4中無符號整數(shù)類型。,有符號整數(shù)類型需要用
2、1位來表示數(shù)據(jù)的正負(fù),因此它的,取值范圍小于無符號整數(shù)類型。,整數(shù)類型的取值范圍和類型轉(zhuǎn)化函數(shù),如,int8的取值范圍:,,128+127,uint8的取值范圍:,,0+255,int16的取值范圍:,,32768+32767,MATLAB的默認(rèn)數(shù)據(jù)存儲類型為double,利用類型轉(zhuǎn)化函數(shù),可將數(shù)據(jù)存儲為整數(shù)類型,如果有小數(shù)部分,四舍五入處理。,例:,整數(shù)類型的轉(zhuǎn)化。,在命令窗輸入:,x=7.503;,int8(x),運(yùn)行結(jié)果:,ans=,8,也可以根據(jù)需要利用函數(shù)對數(shù)據(jù)的小數(shù)部分進(jìn)行舍入。,例:,轉(zhuǎn)化ASCII碼。,在命令窗輸入:,str=01 Aa,int8(str),運(yùn)行結(jié)果:,str=
3、 01 Aa ans= 48 49 32 65 97,某個整數(shù)類型的變量只能與該整數(shù)類型或double類型的,變量進(jìn)行算術(shù)運(yùn)算,其結(jié)果仍為該類型的整數(shù)。,例:,整數(shù)類型的算術(shù)運(yùn)算。,在命令窗輸入:,x=int16(2)*pi,class(x),運(yùn)行結(jié)果:,x= 6 ans= int16,整數(shù)的取值范圍可通過intmax和intmin函數(shù)查看。,例:,查看整數(shù)類型的范圍。,在命令窗輸入:,intmax(int16),x=int8(500),運(yùn)行結(jié)果:,ans= 32767 x= 127,二.浮點(diǎn)數(shù),MATLAB的浮點(diǎn)數(shù)分為單精度(single)和雙精度(double)。,默認(rèn)數(shù)據(jù)類型doubl
4、e需要64位存儲空間,具體如下:,63,6252,510,,符號,,指數(shù)部分且有 1023的偏移量,,小數(shù)部分,Single需要32位存儲空間,具體如下:,31,3023,220,,符號,,指數(shù)部分且有 127的偏移量,,小數(shù)部分,直接輸入變量值創(chuàng)建的是double類型,創(chuàng)建single類型,需要用輸入類型轉(zhuǎn)化函數(shù)。,例:,創(chuàng)建浮點(diǎn)數(shù)。,在命令窗輸入:,x=35;y= single(-26);,a=class(x),b=class(y),運(yùn)行結(jié)果:,a = double b = single,繼續(xù)在命令窗輸入:,whos(x,y),運(yùn)行結(jié)果:,Name Size Bytes Clas
5、s x 1x1 8 double array y 1x1 4 single array Grand total is 2 elements using 12 bytes,浮點(diǎn)數(shù)據(jù)類型可與char、single、double、logical、int*、uint*,類型的數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,其運(yùn)算結(jié)果如下表所示:,浮點(diǎn)類型與各種類型數(shù)據(jù)運(yùn)算結(jié)果,例:,浮點(diǎn)數(shù)與其它類型的運(yùn)算。,在命令窗輸入:,x=35;y= single(-20);z=int8(25); s=A;,a=x+z,b=y+s,c1=class(a),c2=class(b),運(yùn)行結(jié)果:,a = 60,b
6、= 45,c1 = int8,c2 = single,浮點(diǎn)數(shù)的取值范圍可通過使用下列函數(shù)查看:,realmax(double)、 realmax(single)、 realmin(double)、,realmin(single) 。,例:,浮點(diǎn)數(shù)的取值范圍。,在命令窗輸入:,realmax(double),realmin(double),運(yùn)行結(jié)果:,ans = 1.7977e+308 ans = 2.2251e-308,在命令窗輸入:, realmax(single),realmin(single),運(yùn)行結(jié)果:,ans = 3.4028e+038 ans = 1.1755e-038,三.復(fù)數(shù)
7、,MATLAB表示復(fù)數(shù)時,可用字母i或j表示虛部。,創(chuàng)建復(fù)數(shù)可直接輸入或利用函數(shù)complex(a,b)。,例:,創(chuàng)建復(fù)數(shù)。,在命令窗輸入:,a=2-3i,運(yùn)行結(jié)果:,a= 2.00003.0000i,例:,利用函數(shù)complex(a,b)創(chuàng)建復(fù)數(shù)。,在命令窗輸入:,a=2,b=3, complex(a,b),運(yùn)行結(jié)果:,a= 2 b= 3 ans= 2.00003.0000i,利用函數(shù)real(z)和imag(z)可以獲得復(fù)數(shù)z的實(shí)部和虛部。,例:,獲得復(fù)數(shù)的實(shí)部和虛部。,在命令窗輸入:,A=1 2;3 4;B=5 6;7 8; Z=complex(A,B), Zr=real(Z), Z
8、i=imag(Z),運(yùn)行結(jié)果:,Z= 1.0000+5.0000i 2.0000+6.0000i 3.0000+7.0000i 4.0000+8.0000i,Zr= 1 2 3 4 Zi= 5 6 7 8,四.無窮與非數(shù),MATLAB中分別用Inf和Inf表示正無窮和負(fù)無窮,用,NAN表示非數(shù)。,例:,無窮。,在命令窗輸入:,1/0,運(yùn)行結(jié)果:,ans= Inf,五.判斷數(shù)據(jù)類型,數(shù)據(jù)類型判斷命令,六. 數(shù)據(jù)顯示形式,MATLAB默認(rèn)數(shù)據(jù)顯示形式是5位長度,可以通過參數(shù),選擇對話框(FilePreferences)或者利用format函數(shù)設(shè)置,數(shù)據(jù)的顯示形式。,例:
9、,數(shù)據(jù)顯示形式。,在命令窗輸入:,x=3.1 1e-13,運(yùn)行結(jié)果:,x=3.1000 0.0000,繼續(xù)在命令窗輸入:,format long,x,運(yùn)行結(jié)果:,x= 3.10000000000000 0.00000000000010,清除所設(shè)置格式(還原默認(rèn)格式)的命令是:,format,例:,改變進(jìn)位制顯示形式。,在命令窗輸入:,format hex,x=uint8(10),運(yùn)行結(jié)果:,x= 0a,3.2 邏輯類型,邏輯類型的變量有兩種取值,邏輯真和邏輯假,分別用,“1”和“0”表示。,一. 創(chuàng)建邏輯數(shù)組,創(chuàng)建邏輯數(shù)組方式有多種:,通過輸入“true”或”false”直接創(chuàng)建邏輯數(shù)組;
10、,通過對數(shù)組進(jìn)行邏輯運(yùn)算創(chuàng)建;,通過MATLAB函數(shù)產(chǎn)生邏輯數(shù)組;,例:,直接創(chuàng)建邏輯數(shù)組。,在命令窗輸入:,x=true,false,true,運(yùn)行結(jié)果:,x= 1 0 1,例:,利用邏輯運(yùn)算創(chuàng)建邏輯數(shù)組。,在命令窗輸入:,y=7,2,95,運(yùn)行結(jié)果:,y= 1 0 1,例:,利用函數(shù)創(chuàng)建邏輯數(shù)組。,在命令窗輸入:,z=isfinite(5,inf,0.3),判斷是否為有限數(shù),有限數(shù)則為真,運(yùn)行結(jié)果:,z= 1 0 1,運(yùn)算產(chǎn)生邏輯結(jié)果的函數(shù),二. 邏輯數(shù)組的用途,邏輯數(shù)組主要用在條件語句和數(shù)組索引中。,例:,數(shù)組的邏輯索引。,在命令窗輸入:,A=rand(3),A(A<0
11、.5)=0,運(yùn)行結(jié)果:,A= 0.4103 0.3529 0.1389 0.8936 0.8132 0.2028 0.0579 0.0099 0.1987,A= 0 0 0 0.8936 0.8132 0 0 0 0,三. 判斷邏輯類型,判斷x是否為邏輯數(shù)組的命令,3.3 字符串,一. 創(chuàng)建字符數(shù)組,創(chuàng)建字符數(shù)組最簡單的方法是用單引號賦值,,利用,strcat函數(shù)也可將多個字符串串接到一起。,例:,創(chuàng)建字符數(shù)組。,在命令窗輸入:,c1=China;,whos c1,運(yùn)行結(jié)果:,Name Size Bytes Class c1 1x
12、5 10 char array Grand total is 5 elements using 10 bytes,例:,串接字符串。,在命令窗輸入:,a=Yanbian;,b= University;,c2=strcat(a,b),空格加在第2個字符串的開頭,運(yùn)行結(jié)果:,c2= Yanbian University,如果要創(chuàng)建二維字符數(shù)組,則要求每行長度相同。,如果長度不同,需要用空格來補(bǔ)充。,例:,創(chuàng)建字符串?dāng)?shù)組。,在命令窗輸入:,m=Yanbian ; University,補(bǔ)3個空格,使長度相等,運(yùn)行結(jié)果:,m = Yanbian University,二. 字符串單元數(shù)組
13、,字符串?dāng)?shù)組要求長度相同,給編程帶來不便。,通過創(chuàng)建,字符串單元數(shù)組可以存儲長度可變的字符串。,利用cellstr函數(shù)可將字符數(shù)組轉(zhuǎn)化為字符串單元數(shù)組。,例:,字符數(shù)組轉(zhuǎn)化為字符串單元數(shù)組。,在命令窗輸入:,a=Yanbian ; University;,b=cellstr(a),運(yùn)行結(jié)果:,b= Yanbian University,字符串單元數(shù)組的元素操作函數(shù),三. 字符串的操作,1. 字符串的比較,字符串的比較函數(shù):,,strcmp、strncmp、strcmpi、strncmpi,strcmp,判斷兩個字符串是否相等;,,strncmp,判斷兩個字符串的前n個字符是否相等;,s
14、trcmpi、strncmpi,,功能與前兩個類似,,但不區(qū)分字符的大小寫。,例:,字符串比較。,在命令窗輸入:,a=hello;,b=help;,strcmp(a,b),運(yùn)行結(jié)果:,ans= 0,繼續(xù)在命令窗輸入:,strncmp(a,b,3),運(yùn)行結(jié)果:,ans= 1,字符串比較還可通過關(guān)系運(yùn)算來實(shí)現(xiàn)。,例:,用運(yùn)算符比較字符串。,在命令窗輸入:,str1=abc;,str2=AbC;,str1=str2,逐個字符比較,返回邏輯數(shù)組,運(yùn)行結(jié)果:,ans= 1 0 1,2. 字符串的查找和替換,MATLAB提供了一些對字符串中的字符進(jìn)行查找和,替換的函數(shù)。,如strrep函數(shù)
15、用于替換字符串中的某個字符。,例:,替換字符。,在命令窗輸入:,s=NAme;,strrep(s, A, a),運(yùn)行結(jié)果:,ans= Name,四. 字符串類型與數(shù)值類型之間的轉(zhuǎn)化,數(shù)值類型可轉(zhuǎn)化為字符串類型,字符串類型也可轉(zhuǎn)化為,數(shù)值類型,相關(guān)的函數(shù)見50頁表3-8和表3-9。,例如,將整數(shù)轉(zhuǎn)化為字符。,在命令窗輸入:,char(65),運(yùn)行結(jié)果:,ans= A,3.4 日期與時間,MATLAB中日期與時間有3種表現(xiàn)形式:,日期字符串、,日期值序列、日期向量。,一.日期的表現(xiàn)形式,日期與時間信息的字符串有多種表示形式,如:,15-Oct-2010 15:35:18,10/15/201
16、0,15:35:18,03:35:18 PM,日期值序列的表示方法,日期值序列1表示0000年1月1日0:00,其它日期時間在,基礎(chǔ)上按天累加。,日期向量的表示方法,year month day hour minute second,二.日期表現(xiàn)形式之間的轉(zhuǎn)化,日期形式的轉(zhuǎn)化函數(shù),三.當(dāng)前日期與時間,當(dāng)前日期字符串可通過date函數(shù)獲得。,例:,獲得當(dāng)前日期字符串。,在命令窗輸入:,date,運(yùn)行結(jié)果:,ans= 23-Sep-2011,當(dāng)前日期時間序列可通過now函數(shù)獲得。,例:,獲得當(dāng)前日期時間數(shù)值序列。,在命令窗輸入:,x=now,運(yùn)行結(jié)果:,x= 7.3442e+00
17、5,繼續(xù)在命令窗輸入:,datestr(x),轉(zhuǎn)換為字符串形式,運(yùn)行結(jié)果:,ans= 09-Oct-2010 09:15:00,3.5 結(jié) 構(gòu),結(jié)構(gòu),,是根據(jù)字段組合起來的不同類型的數(shù)據(jù)集合。,一.創(chuàng)建結(jié)構(gòu)數(shù)組,1.利用賦值語句創(chuàng)建結(jié)構(gòu),例:,利用賦值語句創(chuàng)建結(jié)構(gòu)。,在命令窗輸入:,student.name=Li Ming;,student.course=10135 10096;,student. score=87 92,運(yùn)行結(jié)果:,student= name: Li Ming course: 10135 10096 score: 87 92,例:,利用創(chuàng)建賦值語句繼
18、續(xù)擴(kuò)展。,繼續(xù)在命令窗輸入:,student(2).name=Zhang Li;,student(2).course=10135 10096;,student(2). score=82 76,運(yùn)行結(jié)果:,student= 1x2 struct array with fields: name course score,2.利用結(jié)構(gòu)函數(shù)創(chuàng)建結(jié)構(gòu),struct函數(shù)可以創(chuàng)建結(jié)構(gòu),其調(diào)用格式為:,strArray=srtuct(field1,val1, field2,val2, ),field和val為字段和對應(yīng)值。,字段值可以是單一值或單元數(shù)組,但是必須保證它們,具有相同的尺寸。,例
19、:,利用結(jié)構(gòu)函數(shù)創(chuàng)建結(jié)構(gòu)。,在命令窗輸入:,stu=struct(n,Wang Fang,c,10568 10063,s,76 82),運(yùn)行結(jié)果:,stu = n: Wang Fang c: 10568 10063 s: 76 82,繼續(xù)在命令窗輸入:,stu(2)=struct(n,Zhao Yun,c,10568 10063,s,92 87),運(yùn)行結(jié)果:,stu = 1x2 struct array with fields: n c s,繼續(xù)在命令窗輸入:,stu(2),查看結(jié)構(gòu)stu(2)的字段內(nèi)容,運(yùn)行結(jié)果:,ans = n: Zhao Yun c: 10568 100
20、63 s: 92 87,也可以一次建立結(jié)構(gòu)數(shù)組的多個元素。,繼續(xù)在命令窗輸入:,clear stu,stu=struct(n,Wang Fang,Zhao Yun,c,,10568 10063,10568 10063,s,76 82,96 87),省略號是續(xù)行符,運(yùn)行結(jié)果:,stu = 1x2 struct array with fields: n c s,二. 結(jié)構(gòu)數(shù)組的操作,1. 訪問結(jié)構(gòu)數(shù)組中的數(shù)據(jù),利用結(jié)構(gòu)數(shù)組索引可以對結(jié)構(gòu)數(shù)組的字段值或字段元素,值進(jìn)行訪問或賦值。,也可利用逗號分隔的序列訪問。,例:,訪問某個結(jié)構(gòu)的字段或字段元素。,接前例繼續(xù)在命令窗輸入:,str1=stud
21、ent(2).name, student(2).score(1),運(yùn)行結(jié)果:,str1 = Zhang Li,ans = 82,2. 添加和刪除字段,利用賦值語句可以添加字段,還可利用setfield函數(shù),添加字段或修改字段的值。,例:,添加和刪除字段。,在命令窗輸入:,student(1). sex=male,運(yùn)行結(jié)果:,student= 1x2 struct array with fields: name course score sex,繼續(xù)在命令窗輸入:, student(1),查看結(jié)構(gòu)student(1)的字段內(nèi)容,運(yùn)行結(jié)果:,ans = name: Li
22、 Ming course: 10135 10096 score: 87 92 sex: male,繼續(xù)在命令窗輸入:, student(2),運(yùn)行結(jié)果:,ans = name: Zhang Li course: 10135 10096 score: 82 76 sex: ,繼續(xù)在命令窗輸入:, rmfield(student,sex),刪除結(jié)構(gòu)的字段,運(yùn)行結(jié)果:,ans = 1x2 struct array with fields: name course score,3.6 單元數(shù)組,單元數(shù)組可以將不同類型或不同尺寸的數(shù)據(jù)存儲到同一個,數(shù)組當(dāng)中。,訪問單元數(shù)組的方法
23、與矩陣索引方法基本相同,區(qū)別在于,單元數(shù)組索引時,需要用將下標(biāo)置于其中。,一.創(chuàng)建單元數(shù)組,創(chuàng)建單元數(shù)組與創(chuàng)建矩陣基本相同,區(qū)別在于矩陣用,,單元數(shù)組用。,例:,創(chuàng)建單元數(shù)組。,在命令窗輸入:,a=2 4 7;3 9 6;1 8 5, Li Ming,2+3i,1:2:10,運(yùn)行結(jié)果:,a = 3x3 double Li Ming 2.0000 + 3.0000i 1x5 double,二. 單元數(shù)組的操作,1. 單元數(shù)組的刪除,對單元數(shù)組向量下標(biāo)賦空值即可刪除單元數(shù)組的行或列。,例:,刪除單元數(shù)組的列。,接上例繼續(xù)在命令窗輸入:,a(:,2)=,運(yùn)行結(jié)果:,a = 3x3 double
24、2.0000 + 3.0000i 1x5 double,2. 運(yùn)用函數(shù)或運(yùn)算符操作單元數(shù)組,利用索引可以對單元數(shù)組進(jìn)行函數(shù)或運(yùn)算符操作。,例:,單元求和。,在命令窗輸入:,A1,1=2 5;7 3;,A1,2=rand(3,3);,B=sum(A1,1),運(yùn)行結(jié)果:,B = 9 8,3. 單元數(shù)組的顯示,直接在命令窗輸入單元數(shù)組名,可顯示單元數(shù)組的構(gòu)成,單元,顯示單元內(nèi)容可使用celldisp函數(shù)。,例:,顯示單元數(shù)組。,在命令窗輸入:, celldisp(A),運(yùn)行結(jié)果:,A1 = 2 5 7 3 A2= 0.4447 0.9218 0.4057 0.6154 0.
25、7382 0.9355 0.7919 0.1763 0.9169,3.7 函數(shù)句柄,函數(shù)句柄,,函數(shù)句柄是提供間接調(diào)用函數(shù)方法的,MATLAB值或數(shù)據(jù)類型。,一.創(chuàng)建和調(diào)用函數(shù)句柄,(1) 在已有函數(shù)名前加符號,即可創(chuàng)建函數(shù)句柄;,例如,存在已有函數(shù),名為functionname,,創(chuàng)建一個函數(shù)句柄fun1 :,fun1=functionname,(2) 可提供匿名函數(shù)創(chuàng)建一個函數(shù)句柄。,例如,創(chuàng)建一個計(jì)算x平方的函數(shù):,sqr=(x)x.2,二.利用句柄調(diào)用函數(shù),要執(zhí)行與函數(shù)句柄相關(guān)的函數(shù),需將函數(shù)句柄看作函數(shù)名。,例如,創(chuàng)建一個函數(shù)句柄:,fun1=functionname,調(diào)用格式:,fun1(arg1,arg2, ,argn),例:,創(chuàng)建和調(diào)用函數(shù)句柄。,在命令窗輸入:, sqr=(x)x.2;, a=sqr(5),運(yùn)行結(jié)果:,a = 25,3.8 MATLAB類,所有MATLAB數(shù)據(jù)類型都以面向?qū)ο蟮念悎?zhí)行。通過創(chuàng)建,附加的類,可以在MATLAB的開發(fā)環(huán)境中添加自定義的數(shù),據(jù)類型。這些用戶自定義的類定義了新數(shù)據(jù)類型的結(jié)構(gòu)、,M文件函數(shù)或方法,即由用戶為每個類編寫,用于定義,該數(shù)據(jù)類型的行為。,
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑施工重大危險(xiǎn)源安全管理制度
- 安全培訓(xùn)資料:典型建筑火災(zāi)的防治基本原則與救援技術(shù)
- 企業(yè)雙重預(yù)防體系應(yīng)知應(yīng)會知識問答
- 8 各種煤礦安全考試試題
- 9 危險(xiǎn)化學(xué)品經(jīng)營單位安全生產(chǎn)管理人員模擬考試題庫試卷附答案
- 加壓過濾機(jī)司機(jī)技術(shù)操作規(guī)程
- 樹脂砂混砂工藝知識總結(jié)
- XXXXX現(xiàn)場安全應(yīng)急處置預(yù)案
- 某公司消防安全檢查制度總結(jié)
- 1 煤礦安全檢查工(中級)職業(yè)技能理論知識考核試題含答案
- 4.燃?xì)獍踩a(chǎn)企業(yè)主要負(fù)責(zé)人模擬考試題庫試卷含答案
- 工段(班組)級安全檢查表
- D 氯化工藝作業(yè)模擬考試題庫試卷含答案-4
- 建筑起重司索信號工安全操作要點(diǎn)
- 實(shí)驗(yàn)室計(jì)量常見的30個問問答題含解析