MATLAB裡的資料型別

2021-09-19 10:41:48 字數 2276 閱讀 1425

1、數值型

整數浮點數

複數2、邏輯型:分別用1和0表示真和假兩種狀態

3、字元陣列

在matlab中,每個字元都用乙個16位的unicode編碼數值表示。8位的ascii字元**集是unicode字元**集的子集

使用char()函式可以建立m*n的字元陣列,如用char函式建立二維字元陣列

>> char('abcd','edf')

ans =

2×4 char 陣列

'abcd'

'edf '

注意,char會自動在短的字元陣列後加上空格,用建立二維字元陣列時,要手動的在短的字串後加上空格,保證每行有相同的長度。

字串單元陣列可以用建立

>> week=

week =

3×1 cell 陣列

4、結構陣列

結構陣列也稱位結構或結構體,是一種用字段來容納資料的matlab陣列,結構陣列的字段可以包含任何型別的資料

建立結構的兩種方法;

1) 使用(.)運算子。如建立乙個名為dafei的學生的成績資訊:

>> student_information.name='qiao';

>> student_information.age='22'

student_information =

包含以下欄位的 struct:

name: 'qiao'

age: '22'

如果再新增乙個學生的資訊可以這樣做:

>> student_information(2).name='chang';

>> student_information(2).age='23'

student_information =

包含以下欄位的 1×2 struct 陣列:

name

age

注意:對於多維結構陣列,不會在顯示每個欄位的內容,只會顯示欄位的名稱如name

2)利用struct函式建立結構陣列。

用法:s=struct('field1','name1',field2','name2',...)

如:

>> s=struct('name',},'age',[2,1])

s =

包含以下欄位的 struct:

name:

age: [2 1]

>> s=struct('name',,'age',[2,1])

s =

包含以下欄位的 1×2 struct 陣列:

name

age

5、單元陣列

單元陣列是一種特殊陣列,單元陣列的每一位可以儲存不同的資料。如a是乙個單元陣列,a可以是乙個字串單元陣列,a可以是乙個數字矩陣

建立單元陣列有使用大括號{}和使用cell函式兩種方法

1)使用大括號賦值語句。

單元索引

>> a(1)=}';

a(2)=;

a(3)=

a = 1×3 cell 陣列

內容索引

>> a=}';

a=[1 2];

a=['ab';'cd']

a = 1×3 cell 陣列

注意:內容索引:賦值語句左邊,把單元的下 標放在{}中,右邊指定單元內容。

單元索引:賦值語句左邊,把單元下標放在()中,右邊把單元內容放入花括號{}

2)使用cell函式初始化單元陣列。

呼叫格式

格式說明

c=cell(n)

建立乙個n*n的各單元為空矩陣的單元陣列

c=cell(m,n)  c=cell([m,n])

建立乙個m*n的各單元為空矩陣的單元陣列

c=cell(m,n,p,...) 

c=cell([m,n,p,...])

建立乙個m*n*p...的各單元為空矩陣的單元陣列

c= cell(size(a))

建立乙個與a同維的各單元為空矩陣的單元陣列

>> c=cell(1,3)

c = 1×3 cell 陣列

>> c(1)=}

c = 1×3 cell 陣列

>> c(2)=

c = 1×3 cell 陣列

>> c(3)=

c = 1×3 cell 陣列

matlab資料型別

數字 字元與字串 都用單引號 s a str i love matlab machine learning.abs s 絕對值函式,可以用來檢視字元的ascii char 65 ascii轉換成字元 num2str 65 數字轉換成字串 3.矩陣 a 1 2 3 4 5 2 3 2 7 b a 轉置...

matlab資料型別

matlab中支援的資料型別包括 邏輯 logical 字元 char 數值 numeric 元寶陣列 cell 結構體 structure table 函式控制代碼 function handle 該型別變數值為1或0 matlab的字元型輸入需使用單引號,字串儲存為字元陣列,每個元素佔乙個asc...

Matlab資料型別

對於numeric的單個數值,預設的資料型別是double,用whos檢視更具體的型別為1 1 double array 只是對於像2.0000這樣的數值matlab直接顯示為2,運算時也當作整形來對待,但並非是嚴格意義上的interger。嚴格意義上,不同型別的數值是不能一起運算的,需要型別轉換,...