《《MATLAB數(shù)據(jù)類型》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《MATLAB數(shù)據(jù)類型》PPT課件.ppt(36頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、Matlab數(shù)據(jù)類型 變量與常量 變量 變量是任何程序設(shè)計語言的基本元素之一。 Matlab并不要求對所使用的變量進行事先聲明, 也不需要指定變量類型, Matlab會自動根據(jù)所賦予變 量的值或?qū)ψ兞克M行的操作來確定變量的類型。 在賦值過程中,如果變量已經(jīng)存在, Matlab會用新 值代替舊值,并以新的變量類型代替舊的變量類型。 Matlab變量的命名規(guī)則 變量名 區(qū)分大小寫 ; 變量名長度 不超過 65個 ( Matlab6.5.1版本以上); 變量名必須以字母開頭,可包含字母(大小寫)、 數(shù)字和下劃線; Matlab數(shù)據(jù)類型 Matlab常量
2、Matlab中有一些預(yù)定義的變量,這些特殊變量稱為常量。 常量名 常量值 常量名 常量值 i,j 虛數(shù)單位 Realmin 最小的正浮點數(shù) pi 圓周率 Realmax 最大的正浮點數(shù) eps 浮點運算相對精度 Inf 無窮大 NaN 不定值 Matlab中經(jīng)常使用的一些常量 1 Matlab數(shù)據(jù)類型 Matlab數(shù)據(jù)類型 Matlab 數(shù)據(jù)類型的最大特點是每一種類型都是以 數(shù)組為基礎(chǔ), Matlab事實上把每種類型的數(shù)據(jù)都作為 數(shù)組來處理。 Matlab 常用的數(shù)據(jù)類型有: numeric( 數(shù)值型) char( 字符型) logical(
3、 邏輯型) cell( 單元型) struct( 結(jié)構(gòu)) Matlab數(shù)據(jù)類型 數(shù)組 Matlab7.1中的數(shù)據(jù)類型 表 邏輯型 字符型 單元型 函數(shù) 句 柄 數(shù)值( numeric) 數(shù)值型數(shù)據(jù)包括整數(shù)(帶符號和無符號)和浮點數(shù) (單精度和雙精度)。 在缺?。J)狀態(tài)下, Matlab將所有的數(shù)都看作 是雙精度的浮點數(shù)。 Matlab數(shù)據(jù)類型 使用整型變量和單精度變量可以節(jié)約內(nèi)存空間。 整數(shù) Matlab提供四種帶符號整型和四種無符號整型數(shù)據(jù)類型。 Matlab數(shù)據(jù)類型 數(shù)據(jù)類型 取值范圍 轉(zhuǎn)換函數(shù) Signed 8-bit integ
4、er -27 to 27 1 int8 Signed 16-bit integer -215 to 215 1 int16 Signed 32-bit integer -231 to 231 1 int32 Signed 64-bit integer -263 to 263 1 int64 Unsigned 8-bit integer 0 to 28 1 uint8 Unsigned 16-bit integer 0 to 216 1 uint16 Unsigned 32-bit integer 0 to 232 1 uint32 Unsigned 64-bit integer 0 to 2
5、64 1 uint64 例: x1=int8(11); x2=int8(15.49); x3=int8(15.5); x4=int8(130); x5=uint8(255); x6=uint8(256); x7=uint8(-1); whos Matlab數(shù)據(jù)類型 x1=11 x2=15 x3=16 x4=127 x5=255 x6=255 x7=0 Matlab數(shù)據(jù)類型 整型數(shù)據(jù)的運算 整型數(shù)據(jù)可以參與的運算有下面兩種: Matlab數(shù)據(jù)類型 相同的整型數(shù)據(jù)之間的運算,結(jié)果為同類型的整數(shù)。 不同的整數(shù)型數(shù)據(jù)之間不能進行運算 。 例: int8(12)*int16(3) X
6、 整型數(shù)據(jù)可以和雙精度 標量 進行數(shù)值運算,結(jié)果為 整數(shù) 。在運算過程中保持浮點運算精度,最后將結(jié)果 轉(zhuǎn)換成整型。 注:整型數(shù)據(jù)不能與 不是標量的雙精度數(shù)組 進行運算 浮點數(shù) 浮點數(shù)包括單精度( 4個字節(jié))和雙精度( 8個字節(jié)), 默認為雙精度。 Matlab數(shù)據(jù)類型 single :將其它類型的數(shù)據(jù)轉(zhuǎn)換成單精度浮點數(shù)。 double :將其它類型的數(shù)據(jù)轉(zhuǎn)換成雙精度浮點數(shù)。 operand single double int/uint char logical single single single X single single double single doubl
7、e int/uint double double 浮點數(shù)與其它類型數(shù)據(jù)運算表 最大和最小浮點數(shù): realmax 和 realmin 例: Matlab數(shù)據(jù)類型 realmax realmin realmax(double) realmin(double) 復(fù)數(shù) 可以通過以下方式定義復(fù)數(shù): Matlab數(shù)據(jù)類型 直接輸入: z = 3+4i 或 z=3+4*i complex 函數(shù): z = complex(3,4) z = complex(3) z=complex(3,0) 相關(guān)函數(shù)(一) 相關(guān)函數(shù)(二 ) 相關(guān)函數(shù)(三 ) 相關(guān)函數(shù)(四 )
8、相關(guān)函數(shù)(五 ) 字符與字符串 字符與字符串運算是各種高級語言不可缺少的部分, Matlab具有強大的字符處理能力。 關(guān)于字符串的約定: 所有字符串必須用單引號括起來; 在 Matlab中,字符串和字符數(shù)組(矩陣)基本上是 等價的; Matlab數(shù)據(jù)類型 例: Matlab數(shù)據(jù)類型 字符串的每個字符(包括空格)都是字符串的一個 元素; 字符串中的字符以 ASCII碼存儲,因而大小寫是有 區(qū)別的,可用 abs函數(shù)查看一個字符的 ASCII碼。 size函數(shù)可用來查 看字符數(shù)組的維數(shù) Matlab數(shù)據(jù)類型 字符串的生成 直接用單引號賦值,例: s3=M
9、atlab 使用 char 函數(shù) 把數(shù)字按照 ASCII 碼轉(zhuǎn)換為字符串。 Matlab數(shù)據(jù)類型 字符串與數(shù)組之間的轉(zhuǎn)換 字符串轉(zhuǎn)換為數(shù)值代碼: abs, double 數(shù)值數(shù)組轉(zhuǎn)換為字符串: char, num2str, int2str, mat2str, 把數(shù)字 直接轉(zhuǎn)換 為字符 串,每個數(shù)字為一個獨 立的字符串。 把數(shù)字 取整后轉(zhuǎn)換 為字 符串,注意和 num2str 的區(qū)別。 把矩陣轉(zhuǎn)換為 一個字符 串 ,方括號、分號和空 格都是其元素。 Matlab數(shù)據(jù)類型 例: 數(shù)值數(shù)組轉(zhuǎn)換為字符數(shù)組后,表面上看形式相同, 但
10、此時的元素是字符而不是數(shù)字! 若要使字符數(shù)組能夠進行數(shù)值計算,需先將其轉(zhuǎn) 換為數(shù)值數(shù)組! Matlab數(shù)據(jù)類型 str2num:將字符數(shù)組轉(zhuǎn)換為數(shù)值數(shù)組 abs,double,char按照 ASCII碼 轉(zhuǎn)換; num2str,int2str,mat2str,str2num 直接轉(zhuǎn)換 。 Matlab數(shù)據(jù)類型 字符串的連接 水平連接: strcat 或 中括號中用逗號連接 在中括號中直接水平連 接,結(jié)果中包括原字符 串結(jié)尾處的空格。 用 strcat 連接,結(jié)果 中 忽略原字符串結(jié)尾處 的空格 。 水平連接得到的是一個更長的字符串。 Matlab數(shù)據(jù)類型
11、字符串的連接 垂直連接: strvcat 或 中括號中用分號連接 在中括號中用分號實現(xiàn)垂直 連接,必須保證每個被連接 的字符串長度相等,否則需 用空格補齊。 用 strvcat 連接,自動為較 短的字符串補足空格。 垂直連接得到的是一個字符串數(shù)組。 Matlab數(shù)據(jù)類型 執(zhí)行字符串: eval Matlab數(shù)據(jù)類型 字符串的其它相關(guān)常用函數(shù) 注:可參見 C語言中字符串操作的相關(guān)函數(shù) 函 數(shù) 功 能 函 數(shù) 功 能 strcmp 比較字符串 strrep 替換字符串 strcmpi 忽略大小寫比較字符串 upper 轉(zhuǎn)換為大寫 strncmp 比較字符串的前 n個字
12、符 lower 轉(zhuǎn)換為小寫 findstr 在一個字符串中查找另 一個字符串 strtok 返回字符串中第一個 分隔符(空格,回車 和 Tab鍵)前的部分 strjust 對齊字符數(shù)組,包括左 對齊,右對齊和居中 blanks 產(chǎn)生空字符串 strmatch 查找匹配的字符串 deblank 刪除字符串中的空格 Matlab數(shù)據(jù)類型 細胞變量(細胞數(shù)組) cell Matlab從 5.0版開始引入了一種新的數(shù)據(jù)類型 --- 細胞 (cell), 該結(jié)構(gòu)把不同屬性的數(shù)據(jù)納入到一個變 量中。 細胞變量的表示方法類似于帶有下標的數(shù)組,但 這些下標不是用圓括號括起來,而是用 大括
13、號 括起來。 Matlab數(shù)據(jù)類型 普通數(shù)組中的每個元素都必須具有相同的屬性, 而細胞則沒有此要求。 例: Matlab數(shù)據(jù)類型 細胞變量的定義 可以通過以下兩種方式定義一個細胞變量: 用賦值語句直接定義; 由 cell 函數(shù)預(yù)先分配存儲空間,然后對細胞的 每個元素逐個賦值。 Matlab數(shù)據(jù)類型 Matlab數(shù)據(jù)類型 細胞變量可以嵌套定義 Matlab數(shù)據(jù)類型 細胞變量的元素的引用 Matlab數(shù)據(jù)類型 細胞變量的相關(guān)操作函數(shù) 函 數(shù) 功 能 cell 生成細胞變量 celldisp 顯示細胞變量的內(nèi)容 cellplot 圖形顯示細胞變量的內(nèi)容 num2cell 將數(shù)值數(shù)組轉(zhuǎn)換成細胞變量 iscell 判別是否為細胞變量