MATLAB數(shù)據(jù)類型

2018-02-06 11:14 更新

默認(rèn)情況下,MATLAB ?存儲所有數(shù)值變量為雙精度浮點(diǎn)值。其他數(shù)據(jù)類型存儲文本,整數(shù)或單精度值或單個變量中相關(guān)數(shù)據(jù)的組合。

MATLAB不需要任何類型聲明或維度語句。當(dāng)MATLAB遇到新的變量名稱時,它將創(chuàng)建變量并分配適當(dāng)?shù)膬?nèi)存空間。

如果變量已經(jīng)存在,則MATLAB將使用新內(nèi)容替換原始內(nèi)容,并在必要時分配新的存儲空間。

例如:

total = 136;

上述語句創(chuàng)建一個名為total1x1矩陣,并將值136存儲在其中。

MATLAB數(shù)據(jù)類型


MATLAB提供15種基本數(shù)據(jù)類型,分別是8種整型數(shù)據(jù)、單精度浮點(diǎn)型、雙精度浮點(diǎn)型、邏輯型、字符串型、單元數(shù)組、結(jié)構(gòu)體類型和函數(shù)句柄。每種數(shù)據(jù)類型存儲矩陣或數(shù)組形式的數(shù)據(jù)。矩陣或數(shù)組的最小值是00,并且是可以到任何大小的矩陣或數(shù)組。

下表顯示了MATLAB中最常用的數(shù)據(jù)類型:

數(shù)據(jù)類型 描述
int8 8位有符號整數(shù)
uint8 8位無符號整數(shù)
int16 16位有符號整數(shù)
uint16 16位無符號整數(shù)
int32 32位有符號整數(shù)
uint32 32位無符號整數(shù)
int64 64位有符號整數(shù)
uint64 64位無符號整數(shù)
single 單精度數(shù)值數(shù)據(jù)
double 雙精度數(shù)值數(shù)據(jù)
logical 邏輯值為10,分別代表truefalse
char 字符數(shù)據(jù)(字符串作為字符向量存儲)
單元格陣列 索引單元陣列,每個都能夠存儲不同維數(shù)和數(shù)據(jù)類型的數(shù)組
結(jié)構(gòu)體 C型結(jié)構(gòu),每個結(jié)構(gòu)具有能夠存儲不同維數(shù)和數(shù)據(jù)類型的數(shù)組的命名字段
函數(shù)處理 指向一個函數(shù)的指針
用戶類 用戶定義的類構(gòu)造的對象
Java類 從Java類構(gòu)造的對象

示例


使用以下代碼創(chuàng)建腳本文件(datatype1.m):

str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)

當(dāng)上述代碼被編譯和執(zhí)行時,它產(chǎn)生以下結(jié)果:

Trial>> datatype1

str =

    'Hello World!'


n =

        2345


d =

        2345


un =

  uint32

   790


rn =

   5.6789e+03


c =

  int32

   5679

數(shù)據(jù)類型轉(zhuǎn)換


MATLAB提供了各種用于將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型的函數(shù)。 下表顯示了數(shù)據(jù)類型轉(zhuǎn)換函數(shù):

函數(shù) 描述說明
char 轉(zhuǎn)換為字符數(shù)組(字符串)
int2str 將整數(shù)數(shù)據(jù)轉(zhuǎn)換為字符串
mat2str 將矩陣轉(zhuǎn)換為字符串
num2str 將數(shù)字轉(zhuǎn)換為字符串
str2double 將字符串轉(zhuǎn)換為雙精度值
str2num 將字符串轉(zhuǎn)換為數(shù)字
native2unicode 將數(shù)字字節(jié)轉(zhuǎn)換為Unicode字符
unicode2native 將Unicode字符轉(zhuǎn)換為數(shù)字字節(jié)
base2dec 將基數(shù)N字符串轉(zhuǎn)換為十進(jìn)制數(shù)
bin2dec 將二進(jìn)制數(shù)字串轉(zhuǎn)換為十進(jìn)制數(shù)
dec2base 將十進(jìn)制轉(zhuǎn)換為字符串中的N數(shù)字
dec2bin 將十進(jìn)制轉(zhuǎn)換為字符串中的二進(jìn)制數(shù)
dec2hex 將十進(jìn)制轉(zhuǎn)換為十六進(jìn)制數(shù)字
hex2dec 將十六進(jìn)制數(shù)字字符串轉(zhuǎn)換為十進(jìn)制數(shù)
hex2num 將十六進(jìn)制數(shù)字字符串轉(zhuǎn)換為雙精度數(shù)字
num2hex 將單數(shù)轉(zhuǎn)換為IEEE十六進(jìn)制字符串
cell2mat 將單元格數(shù)組轉(zhuǎn)換為數(shù)組
cell2struct 將單元格數(shù)組轉(zhuǎn)換為結(jié)構(gòu)數(shù)組
cellstr 從字符數(shù)組創(chuàng)建字符串?dāng)?shù)組
mat2cell 將數(shù)組轉(zhuǎn)換為具有潛在不同大小的單元格的單元陣列
num2cell 將數(shù)組轉(zhuǎn)換為具有一致大小的單元格的單元陣列
struct2cell 將結(jié)構(gòu)轉(zhuǎn)換為單元格數(shù)組

數(shù)據(jù)類型確定


MATLAB提供了用于識別變量數(shù)據(jù)類型的各種函數(shù)。

下表提供了確定變量數(shù)據(jù)類型的函數(shù):

函數(shù) 描述說明
is 檢測狀態(tài)
isa 確定輸入是否是指定類的對象
iscell 確定輸入是單元格數(shù)組
iscellstr 確定輸入是字符串的單元格數(shù)組
ischar 確定項(xiàng)目是否是字符數(shù)組
isfield 確定輸入是否是結(jié)構(gòu)數(shù)組字段
isfloat 確定輸入是否為浮點(diǎn)數(shù)組
ishghandle 確定是否用于處理圖形對象句柄
isinteger 確定輸入是否為整數(shù)數(shù)組
isjava 確定輸入是否為Java對象
islogical 確定輸入是否為邏輯數(shù)組
isnumeric 確定輸入是否是數(shù)字?jǐn)?shù)組
isobject 確定輸入是否為MATLAB對象
isreal 檢查輸入是否為實(shí)數(shù)數(shù)組
isscalar 確定輸入是否為標(biāo)量
isstr 確定輸入是否是字符數(shù)組
isstruct 確定輸入是否是結(jié)構(gòu)數(shù)組
isvector 確定輸入是否為向量
class 確定對象的類
validateattributes 檢查數(shù)組的有效性
whos 在工作區(qū)中列出變量,其大小和類型

示例


使用以下代碼創(chuàng)建腳本文件:

x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)

x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)

x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)

x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)

運(yùn)行文件后,產(chǎn)生以下結(jié)果:

x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 1177/50
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x =

          1          2          3

ans = 0
ans = 1
ans = 1
ans = 0
x = Hello
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號