版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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ù)存儲(chǔ)類型為雙精度浮點(diǎn)類型(double),,可以利用轉(zhuǎn)化函數(shù)存儲(chǔ)為其它類型,,所有的數(shù)值類型數(shù)據(jù),均可作為數(shù)組的索引。,一.整數(shù),MATLAB中有4種有符號(hào)整數(shù)類型,4中無符號(hào)整數(shù)類型。,有符號(hào)整數(shù)類型需要用1位來表示數(shù)據(jù)的正負(fù),因此它的
2、,取值范圍小于無符號(hào)整數(shù)類型。,整數(shù)類型的取值范圍和類型轉(zhuǎn)化函數(shù),如,int8的取值范圍:,128+127,uint8的取值范圍:,0+255,int16的取值范圍:,32768+32767,MATLAB的默認(rèn)數(shù)據(jù)存儲(chǔ)類型為double,利用類型轉(zhuǎn)化函數(shù),可將數(shù)據(jù)存儲(chǔ)為整數(shù)類型,如果有小數(shù)部分,四舍五入處理。,例:,整數(shù)類型的轉(zhuǎn)化。,在命令窗輸入:,x=7.503;,int8(x),運(yùn)行結(jié)果:,ans=,8,也可以根據(jù)需要利用函數(shù)對(duì)數(shù)據(jù)的小數(shù)部分進(jìn)行舍入。,例:,轉(zhuǎn)化ASCII碼。,在命令窗輸入:,str=01 Aa,int8(str),運(yùn)行結(jié)果:,str= 01 Aa ans= 48 49
3、32 65 97,某個(gè)整數(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ù)類型double需要64位存儲(chǔ)空間,具體如下:,63
4、,6252,510,符號(hào),指數(shù)部分且有 1023的偏移量,小數(shù)部分,Single需要32位存儲(chǔ)空間,具體如下:,31,3023,220,符號(hào),指數(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 Class x 1x1 8 double array y 1x1 4
5、 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 = 45,c1 = int8,c2 = single,浮點(diǎn)數(shù)的取值范圍可通過使用下列函數(shù)查看:
6、,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ù),MATLAB表示復(fù)數(shù)時(shí),可用字母i或j表示虛部。,創(chuàng)建復(fù)數(shù)可直接輸入或利用函數(shù)complex(
7、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), Zi=imag(Z),運(yùn)行結(jié)果:,Z= 1.0000+5.0000i 2.0000+6.0000i 3
8、.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位長(zhǎng)度,可以通過參數(shù),選擇對(duì)話框(FilePreferences)或者利用format函數(shù)設(shè)置,數(shù)據(jù)的顯示形式。,例:,數(shù)據(jù)顯示形式。,在命令窗輸入:,x=3.1 1e-13,運(yùn)行結(jié)果:,x=3.1000 0.0000,繼續(xù)在命令窗輸入:,for
9、mat 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ù)組;,通過對(duì)數(shù)組進(jìn)行邏輯運(yùn)算創(chuàng)建;,通過MATLAB函數(shù)產(chǎn)生邏輯數(shù)組;,例:,直接創(chuàng)建邏輯數(shù)組。,在命令窗輸入:,x=true,fals
10、e,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(A0.5)=0,運(yùn)行結(jié)果:,A= 0.4103 0.3529 0.1389 0.8936 0.8132 0.2028 0.0579 0.0099 0.198
11、7,A= 0 0 0 0.8936 0.8132 0 0 0 0,三. 判斷邏輯類型,判斷x是否為邏輯數(shù)組的命令,3.3 字符串,一. 創(chuàng)建字符數(shù)組,創(chuàng)建字符數(shù)組最簡(jiǎn)單的方法是用單引號(hào)賦值,,利用,strcat函數(shù)也可將多個(gè)字符串串接到一起。,例:,創(chuàng)建字符數(shù)組。,在命令窗輸入:,c1=China;,whos c1,運(yùn)行結(jié)果:,Name Size Bytes Class c1 1x5 10 char array Grand total is 5 elements using 10 bytes,例:,串接字符串。,在命令窗輸入:,a=Yanbian;,b= University;,c2=strc
12、at(a,b),空格加在第2個(gè)字符串的開頭,運(yùn)行結(jié)果:,c2= Yanbian University,如果要?jiǎng)?chuàng)建二維字符數(shù)組,則要求每行長(zhǎng)度相同。,如果長(zhǎng)度不同,需要用空格來補(bǔ)充。,例:,創(chuàng)建字符串?dāng)?shù)組。,在命令窗輸入:,m=Yanbian ; University,補(bǔ)3個(gè)空格,使長(zhǎng)度相等,運(yùn)行結(jié)果:,m = Yanbian University,二. 字符串單元數(shù)組,字符串?dāng)?shù)組要求長(zhǎng)度相同,給編程帶來不便。,通過創(chuàng)建,字符串單元數(shù)組可以存儲(chǔ)長(zhǎng)度可變的字符串。,利用cellstr函數(shù)可將字符數(shù)組轉(zhuǎn)化為字符串單元數(shù)組。,例:,字符數(shù)組轉(zhuǎn)化為字符串單元數(shù)組。,在命令窗輸入:,a=Yanbian ;
13、 University;,b=cellstr(a),運(yùn)行結(jié)果:,b= Yanbian University,字符串單元數(shù)組的元素操作函數(shù),三. 字符串的操作,1. 字符串的比較,字符串的比較函數(shù):,strcmp、strncmp、strcmpi、strncmpi,strcmp,判斷兩個(gè)字符串是否相等;,strncmp,判斷兩個(gè)字符串的前n個(gè)字符是否相等;,strcmpi、strncmpi,功能與前兩個(gè)類似,,但不區(qū)分字符的大小寫。,例:,字符串比較。,在命令窗輸入:,a=hello;,b=help;,strcmp(a,b),運(yùn)行結(jié)果:,ans= 0,繼續(xù)在命令窗輸入:,strncmp(a,b,3
14、),運(yùn)行結(jié)果:,ans= 1,字符串比較還可通過關(guān)系運(yùn)算來實(shí)現(xiàn)。,例:,用運(yùn)算符比較字符串。,在命令窗輸入:,str1=abc;,str2=AbC;,str1=str2,逐個(gè)字符比較,返回邏輯數(shù)組,運(yùn)行結(jié)果:,ans= 1 0 1,2. 字符串的查找和替換,MATLAB提供了一些對(duì)字符串中的字符進(jìn)行查找和,替換的函數(shù)。,如strrep函數(shù)用于替換字符串中的某個(gè)字符。,例:,替換字符。,在命令窗輸入:,s=NAme;,strrep(s, A, a),運(yùn)行結(jié)果:,ans= Name,四. 字符串類型與數(shù)值類型之間的轉(zhuǎn)化,數(shù)值類型可轉(zhuǎn)化為字符串類型,字符串類型也可轉(zhuǎn)化為,數(shù)值類型,相關(guān)的函數(shù)見50頁
15、表3-8和表3-9。,例如,將整數(shù)轉(zhuǎn)化為字符。,在命令窗輸入:,char(65),運(yùn)行結(jié)果:,ans= A,3.4 日期與時(shí)間,MATLAB中日期與時(shí)間有3種表現(xiàn)形式:,日期字符串、,日期值序列、日期向量。,一.日期的表現(xiàn)形式,日期與時(shí)間信息的字符串有多種表示形式,如:,15-Oct-2010 15:35:18,10/15/2010,15:35:18,03:35:18 PM,日期值序列的表示方法,日期值序列1表示0000年1月1日0:00,其它日期時(shí)間在,基礎(chǔ)上按天累加。,日期向量的表示方法,year month day hour minute second,二.日期表現(xiàn)形式之間的轉(zhuǎn)化,日期形
16、式的轉(zhuǎn)化函數(shù),三.當(dāng)前日期與時(shí)間,當(dāng)前日期字符串可通過date函數(shù)獲得。,例:,獲得當(dāng)前日期字符串。,在命令窗輸入:,date,運(yùn)行結(jié)果:,ans= 23-Sep-2011,當(dāng)前日期時(shí)間序列可通過now函數(shù)獲得。,例:,獲得當(dāng)前日期時(shí)間數(shù)值序列。,在命令窗輸入:,x=now,運(yùn)行結(jié)果:,x= 7.3442e+005,繼續(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)。,在命令窗輸入:,st
17、=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)建賦值語句繼續(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 scor
18、e,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為字段和對(duì)應(yīng)值。,字段值可以是單一值或單元數(shù)組,但是必須保證它們,具有相同的尺寸。,例:,利用結(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,
19、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 10063 s: 92 87,也可以一次建立結(jié)構(gòu)數(shù)組的多個(gè)元素。,繼續(xù)在命令窗輸入:,clear stu,stu=struct(n,Wang Fang,Zhao Yun,c,10568 10063,10568 10063,s,76 82,96 87),省略號(hào)是續(xù)行符,運(yùn)行結(jié)果:,stu = 1x2 struct array with fields: n
20、 c s,二. 結(jié)構(gòu)數(shù)組的操作,1. 訪問結(jié)構(gòu)數(shù)組中的數(shù)據(jù),利用結(jié)構(gòu)數(shù)組索引可以對(duì)結(jié)構(gòu)數(shù)組的字段值或字段元素,值進(jìn)行訪問或賦值。,也可利用逗號(hào)分隔的序列訪問。,例:,訪問某個(gè)結(jié)構(gòu)的字段或字段元素。,接前例繼續(xù)在命令窗輸入:,str1=student(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 str
21、uct array with fields: name course score sex,繼續(xù)在命令窗輸入:, student(1),查看結(jié)構(gòu)student(1)的字段內(nèi)容,運(yùn)行結(jié)果:,ans = name: Li 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
22、struct array with fields: name course score,3.6 單元數(shù)組,單元數(shù)組可以將不同類型或不同尺寸的數(shù)據(jù)存儲(chǔ)到同一個(gè),數(shù)組當(dāng)中。,訪問單元數(shù)組的方法與矩陣索引方法基本相同,區(qū)別在于,單元數(shù)組索引時(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ù)組的刪除,對(duì)單元數(shù)組向量下標(biāo)賦空值即可刪除單元數(shù)組的行或列。,例:,刪除單元數(shù)組的列。,接上例繼續(xù)在命令窗輸入:,a(:,2)=,運(yùn)行結(jié)果:,a = 3x3 double 2.0000 + 3.0000i 1x5 double,2. 運(yùn)用函數(shù)或運(yùn)算符操作單元數(shù)組,利
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年社會(huì)主義核心價(jià)值觀競(jìng)賽試題及答案
- 注冊(cè)會(huì)計(jì)師《經(jīng)濟(jì)法》測(cè)試題及答案
- 社區(qū)工作的試題及答案
- 銀行文員考試題及答案
- 餐飲服務(wù)食品安全操作試題及答案
- 粵教滬版八年級(jí)物理下冊(cè)《宇宙深處》教學(xué)設(shè)計(jì)
- 有序思考智慧搭配-三年級(jí)上冊(cè)“數(shù)學(xué)廣角”之《搭配的學(xué)問》教學(xué)設(shè)計(jì)
- 聚焦數(shù)軸與距離:絕對(duì)值的概念建構(gòu)與素養(yǎng)培育教學(xué)設(shè)計(jì)
- 醫(yī)博士相關(guān)考試題及答案
- 稷山縣公務(wù)員遴選筆試題庫及答案解析
- 2025年全國(guó)國(guó)家版圖知識(shí)競(jìng)賽(中小學(xué)組)題庫及參考答案詳解
- 2026年春季第二學(xué)期學(xué)校德育工作計(jì)劃及安排表:馳聘春程踐初心德育賦能強(qiáng)少年
- 2026廣東廣州市海珠區(qū)住房和建設(shè)局招聘雇員7人筆試參考題庫及答案解析
- 2025年CFA真題及答案分享
- 話語體系構(gòu)建的文化外交策略課題申報(bào)書
- 云南師大附中2026屆高三1月高考適應(yīng)性月考卷英語(六)含答案
- 鋁業(yè)有限公司保德氧化鋁項(xiàng)目施工組織設(shè)計(jì)方案
- 海南2025年中國(guó)熱帶農(nóng)業(yè)科學(xué)院橡膠研究所第一批招聘16人(第1號(hào))筆試歷年參考題庫附帶答案詳解
- 2025-2026人教版數(shù)學(xué)七年級(jí)上冊(cè)期末模擬試卷(含答案)
- 2026年九江市八里湖新區(qū)國(guó)有企業(yè)面向社會(huì)公開招聘工作人員【48人】筆試參考題庫及答案解析
- 廣告行業(yè)法律法規(guī)與行業(yè)規(guī)范(標(biāo)準(zhǔn)版)
評(píng)論
0/150
提交評(píng)論