Matlab數據類型
MATLAB不需要任何類型聲明或維度語句。當MATLAB遇到新的變量名稱時,它將創建變量並分配適當的內存空間。
如果變量已經存在,則MATLAB將使用新內容替換原始內容,並在必要時分配新的存儲空間。
例如,
total = 136;
上述語句創建一個名爲total
的1x1
矩陣,並將值136
存儲在其中。
MATLAB數據類型
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