MATLAB不需要任何型別宣告或維度語句。當MATLAB遇到新的變數名稱時,它將建立變數並分配適當的記憶體空間。
如果變數已經存在,則MATLAB將使用新內容替換原始內容,並在必要時分配新的儲存空間。
例如,
total = 136;
上述語句建立一個名為total
的1x1
矩陣,並將值136
儲存在其中。
MATLAB提供15
種基本資料型別。每種資料型別儲存矩陣或陣列形式的資料。矩陣或陣列的最小值是0
到0
,並且是可以到任何大小的矩陣或陣列。
下表顯示了MATLAB中最常用的資料型別 -
資料型別 | 描述 |
---|---|
int8 |
8 位有符號整數 |
uint8 |
8 位無符號整數 |
int16 |
16 位有符號整數 |
uint16 |
16 位無符號整數 |
int32 |
32 位有符號整數 |
uint32 |
32 位無符號整數 |
int64 |
64 位有符號整數 |
uint64 |
64 位無符號整數 |
single |
單精度數值資料 |
double |
雙精度數值資料 |
logical |
邏輯值為1 或0 ,分別代表true 和false |
char |
字元資料(字串作為字元向量儲存) |
單元格陣列 | 索引單元陣列,每個都能夠儲存不同維數和資料型別的陣列 |
結構體 | C型結構,每個結構具有能夠儲存不同維數和資料型別的陣列的命名欄位 |
函式處理 | 指向一個函式的指標 |
使用者類 | 使用者定義的類構造的物件 |
Java類 | 從Java類構造的物件 |
使用以下程式碼建立指令碼檔案(datatype1.m) -
str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)
當上述程式碼被編譯和執行時,它產生以下結果 -
Trial>> datatype1
str =
'Hello World!'
n =
2345
d =
2345
un =
uint32
790
rn =
5.6789e+03
c =
int32
5679
MATLAB提供了各種用于將一種資料型別轉換為另一種資料型別的函式。 下表顯示了資料型別轉換函式 -
函式 | 描述說明 |
---|---|
char |
轉換為字元陣列(字串) |
int2str |
將整數資料轉換為字串 |
mat2str |
將矩陣轉換為字串 |
num2str |
將數位轉換為字串 |
str2double |
將字串轉換為雙精度值 |
str2num |
將字串轉換為數位 |
native2unicode |
將數位位元組轉換為Unicode字元 |
unicode2native |
將Unicode字元轉換為數位位元組 |
base2dec |
將基數N字串轉換為十進位制數 |
bin2dec |
將二進位制數位串轉換為十進位制數 |
dec2base |
將十進位制轉換為字串中的N數位 |
dec2bin |
將十進位制轉換為字串中的二進位制數 |
dec2hex |
將十進位制轉換為十六進位制數位 |
hex2dec |
將十六進位制數位字串轉換為十進位制數 |
hex2num |
將十六進位制數位字串轉換為雙精度數位 |
num2hex |
將單數轉換為IEEE十六進位制字串 |
cell2mat |
將單元格陣列轉換為陣列 |
cell2struct |
將單元格陣列轉換為結構陣列 |
cellstr |
從字元陣列建立字串陣列 |
mat2cell |
將陣列轉換為具有潛在不同大小的單元格的單元陣列 |
num2cell |
將陣列轉換為具有一致大小的單元格的單元陣列 |
struct2cell |
將結構轉換為單元格陣列 |
MATLAB提供了用於識別變數資料型別的各種函式。
下表提供了確定變數資料型別的函式 -
函式 | 描述說明 |
---|---|
is |
檢測狀態 |
isa |
確定輸入是否是指定類的物件 |
iscell |
確定輸入是單元格陣列 |
iscellstr |
確定輸入是字串的單元格陣列 |
ischar |
確定專案是否是字元陣列 |
isfield |
確定輸入是否是結構陣列欄位 |
isfloat |
確定輸入是否為浮點陣列 |
ishghandle |
確定是否用於處理圖形物件控制代碼 |
isinteger |
確定輸入是否為整數陣列 |
isjava |
確定輸入是否為Java物件 |
islogical |
確定輸入是否為邏輯陣列 |
isnumeric |
確定輸入是否是數位陣列 |
isobject |
確定輸入是否為MATLAB物件 |
isreal |
檢查輸入是否為實數陣列 |
isscalar |
確定輸入是否為標量 |
isstr |
確定輸入是否是字元陣列 |
isstruct |
確定輸入是否是結構陣列 |
isvector |
確定輸入是否為向量 |
class |
確定物件的類 |
validateattributes |
檢查陣列的有效性 |
whos |
在工作區中列出變數,其大小和型別 |
使用以下程式碼建立指令碼檔案 -
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)
執行檔案後,產生以下結果 -
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