MATLAB不需要任何類型聲明或維度語句。當MATLAB遇到新的變量名稱時,它將創(chuà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ù)組 |
| 結構體 | C型結構,每個結構具有能夠存儲不同維數(shù)和數(shù)據(jù)類型的數(shù)組的命名字段 |
| 函數(shù)處理 | 指向一個函數(shù)的指針 |
| 用戶類 | 用戶定義的類構造的對象 |
| Java類 | 從Java類構造的對象 |
使用以下代碼創(chuàng)建腳本文件(datatype1.m) -
str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)
當上述代碼被編譯和執(zhí)行時,它產(chǎn)生以下結果 -
Trial>> datatype1
str =
'Hello World!'
n =
2345
d =
2345
un =
uint32
790
rn =
5.6789e+03
c =
int32
5679
MATLAB提供了各種用于將一種數(shù)據(jù)類型轉換為另一種數(shù)據(jù)類型的函數(shù)。 下表顯示了數(shù)據(jù)類型轉換函數(shù) -
| 函數(shù) | 描述說明 |
|---|---|
char |
轉換為字符數(shù)組(字符串) |
int2str |
將整數(shù)數(shù)據(jù)轉換為字符串 |
mat2str |
將矩陣轉換為字符串 |
num2str |
將數(shù)字轉換為字符串 |
str2double |
將字符串轉換為雙精度值 |
str2num |
將字符串轉換為數(shù)字 |
native2unicode |
將數(shù)字字節(jié)轉換為Unicode字符 |
unicode2native |
將Unicode字符轉換為數(shù)字字節(jié) |
base2dec |
將基數(shù)N字符串轉換為十進制數(shù) |
bin2dec |
將二進制數(shù)字串轉換為十進制數(shù) |
dec2base |
將十進制轉換為字符串中的N數(shù)字 |
dec2bin |
將十進制轉換為字符串中的二進制數(shù) |
dec2hex |
將十進制轉換為十六進制數(shù)字 |
hex2dec |
將十六進制數(shù)字字符串轉換為十進制數(shù) |
hex2num |
將十六進制數(shù)字字符串轉換為雙精度數(shù)字 |
num2hex |
將單數(shù)轉換為IEEE十六進制字符串 |
cell2mat |
將單元格數(shù)組轉換為數(shù)組 |
cell2struct |
將單元格數(shù)組轉換為結構數(shù)組 |
cellstr |
從字符數(shù)組創(chuàng)建字符串數(shù)組 |
mat2cell |
將數(shù)組轉換為具有潛在不同大小的單元格的單元陣列 |
num2cell |
將數(shù)組轉換為具有一致大小的單元格的單元陣列 |
struct2cell |
將結構轉換為單元格數(shù)組 |
MATLAB提供了用于識別變量數(shù)據(jù)類型的各種函數(shù)。
下表提供了確定變量數(shù)據(jù)類型的函數(shù) -
| 函數(shù) | 描述說明 |
|---|---|
is |
檢測狀態(tài) |
isa |
確定輸入是否是指定類的對象 |
iscell |
確定輸入是單元格數(shù)組 |
iscellstr |
確定輸入是字符串的單元格數(shù)組 |
ischar |
確定項目是否是字符數(shù)組 |
isfield |
確定輸入是否是結構數(shù)組字段 |
isfloat |
確定輸入是否為浮點數(shù)組 |
ishghandle |
確定是否用于處理圖形對象句柄 |
isinteger |
確定輸入是否為整數(shù)數(shù)組 |
isjava |
確定輸入是否為Java對象 |
islogical |
確定輸入是否為邏輯數(shù)組 |
isnumeric |
確定輸入是否是數(shù)字數(shù)組 |
isobject |
確定輸入是否為MATLAB對象 |
isreal |
檢查輸入是否為實數(shù)數(shù)組 |
isscalar |
確定輸入是否為標量 |
isstr |
確定輸入是否是字符數(shù)組 |
isstruct |
確定輸入是否是結構數(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)生以下結果 -
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