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ù)類型。每種數(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 |
確定項目是否是字符數(shù)組 |
isfield |
確定輸入是否是結(jié)構(gòu)數(shù)組字段 |
isfloat |
確定輸入是否為浮點數(shù)組 |
ishghandle |
確定是否用于處理圖形對象句柄 |
isinteger |
確定輸入是否為整數(shù)數(shù)組 |
isjava |
確定輸入是否為Java對象 |
islogical |
確定輸入是否為邏輯數(shù)組 |
isnumeric |
確定輸入是否是數(shù)字?jǐn)?shù)組 |
isobject |
確定輸入是否為MATLAB對象 |
isreal |
檢查輸入是否為實數(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)
運行文件后,產(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