默認(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)建一個名為total
的1x1
矩陣,并將值136
存儲在其中。
MATLAB提供15
種基本數(shù)據(jù)類型,分別是8種整型數(shù)據(jù)、單精度浮點(diǎn)型、雙精度浮點(diǎn)型、邏輯型、字符串型、單元數(shù)組、結(jié)構(gòu)體類型和函數(shù)句柄。每種數(shù)據(jù)類型存儲矩陣或數(shù)組形式的數(shù)據(jù)。矩陣或數(shù)組的最小值是0
到0
,并且是可以到任何大小的矩陣或數(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
|
邏輯值為1 或0 ,分別代表true 和false
|
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
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ù)組 |
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
更多建議: