MATLAB 高級數據類型 table

table數據類型使用來取代statistics toolbox中的dataset的,可以生成帶有表頭的表格數據。

  1. 讀取數據生成table table = readtable('1.txt')
    在這裏插入圖片描述
    用空格或者逗號分隔開,保存爲txt或者CSV格式。
    在這裏插入圖片描述2. 調用構造函數生成table
number = ['1'; '2'; '3'] % 也可以是cell{}
value = ['1'; '2'; '3' ] % 也可以是cell{}
colName = ["number" ,"value"] % 也可以是cell{},如果是[]需要是""而不能是''
tabl1 = table(number,value,'VariableNames',colName)

在這裏插入圖片描述
2. 通過array2table,cell2table,struct2table 轉換成table
1. array2table
· · · 用於將數組轉換成table,類似於上面用構造函數生成table,需要額外來指定表頭。

ta = table(array,'VariableNames',colName) % 注意需要維度匹配
array = table2array(ta) % 表頭會被去掉
  1. cell2table
    · · · 用於將元胞數組轉換成table,類似於上面用構造函數生成table,需要額外來指定表頭。
ta = table(cell,'VariableNames',colName) % 注意需要維度匹配
cell = table2array(ta) % 表頭會被去掉
  1. struct2table
    · · · 用於將結構體轉換成table,類似於上面用構造函數生成table,不需要額外來指定表頭,field的名稱即爲表頭。
stu.name = ["AA","BB","CC"]';
stu.grade = [1 2 3]';
table = struct2table(stu)
kk = table2struct(table) % 轉換成struct數組,與stu不同,體會區別

在這裏插入圖片描述
轉換回來的結構體與原來的結構體是不同的,區別可以從圖中看出來。


對table的訪問和刪除和一般的數組非常相似,因爲運算符都被重載好了,這個不用細說,可以自己動手試試,它有兩種訪問方式,返回的數據類型是不一樣的。

table(1,:) % 返回類型是table
table{1,:} % 返回類型是array
table.name % 返回類型是array,與上面的方法效果一樣

在這裏插入圖片描述

table.name = []; % 刪掉某列,某個單元同理
[table1; table2] % 合併table
[table1  table2] % 合併table  需要注意的是,兩個都必須是同類型的表格
table.new = {...} % 這樣可以直接增加一欄,增加一行可以考慮生成table再合併

一個比較重要的函數需要介紹,就是varfun(),這個函數主要是用來向量化操作的,與cellfun和arrayfun是一樣的,只是這個使用來對table中每個元素進行運算。

out = varfun(@fun,table) 

合併table的操作主要是join(),outerjoin(),innerjoin(),這幾個函數都是用來合併表格的,關於table更多的函數我們可以查看table對象的屬性
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章