- Matlab 教程
- MATLAB - 首頁
- MATLAB - 概述
- MATLAB - 特性
- MATLAB - 環境設定
- MATLAB - 編輯器
- MATLAB - 線上
- MATLAB - 工作區
- MATLAB - 語法
- MATLAB - 變數
- MATLAB - 命令
- MATLAB - 資料型別
- MATLAB - 運算子
- MATLAB - 日期和時間
- MATLAB - 數字
- MATLAB - 隨機數
- MATLAB - 字串和字元
- MATLAB - 文字格式化
- MATLAB - 時間表
- MATLAB - M 檔案
- MATLAB - 冒號表示法
- MATLAB - 資料匯入
- MATLAB - 資料匯出
- MATLAB - 資料歸一化
- MATLAB - 預定義變數
- MATLAB - 決策
- MATLAB - 決策
- MATLAB - if end 語句
- MATLAB - if else 語句
- MATLAB - if…elseif else 語句
- MATLAB - 巢狀 if 語句
- MATLAB - switch 語句
- MATLAB - 巢狀 switch
- MATLAB - 迴圈
- MATLAB - 迴圈
- MATLAB - for 迴圈
- MATLAB - while 迴圈
- MATLAB - 巢狀迴圈
- MATLAB - break 語句
- MATLAB - continue 語句
- MATLAB - end 語句
- MATLAB - 陣列
- MATLAB - 陣列
- MATLAB - 向量
- MATLAB - 轉置運算子
- MATLAB - 陣列索引
- MATLAB - 多維陣列
- MATLAB - 相容陣列
- MATLAB - 分類陣列
- MATLAB - 元胞陣列
- MATLAB - 矩陣
- MATLAB - 稀疏矩陣
- MATLAB - 表格
- MATLAB - 結構體
- MATLAB - 陣列乘法
- MATLAB - 陣列除法
- MATLAB - 陣列函式
- MATLAB - 函式
- MATLAB - 函式
- MATLAB - 函式引數
- MATLAB - 匿名函式
- MATLAB - 巢狀函式
- MATLAB - return 語句
- MATLAB - 無返回值函式
- MATLAB - 區域性函式
- MATLAB - 全域性變數
- MATLAB - 函式控制代碼
- MATLAB - 濾波函式
- MATLAB - 階乘
- MATLAB - 私有函式
- MATLAB - 子函式
- MATLAB - 遞迴函式
- MATLAB - 函式優先順序順序
- MATLAB - map 函式
- MATLAB - mean 函式
- MATLAB - end 函式
- MATLAB - 錯誤處理
- MATLAB - 錯誤處理
- MATLAB - try…catch 語句
- MATLAB - 除錯
- MATLAB - 繪圖
- MATLAB - 繪圖
- MATLAB - 繪製陣列
- MATLAB - 繪製向量
- MATLAB - 條形圖
- MATLAB - 直方圖
- MATLAB - 圖形
- MATLAB - 二維線圖
- MATLAB - 三維圖
- MATLAB - 圖表格式化
- MATLAB - 對數座標軸圖
- MATLAB - 繪製誤差條
- MATLAB - 繪製三維等高線圖
- MATLAB - 極座標圖
- MATLAB - 散點圖
- MATLAB - 繪製表示式或函式
- MATLAB - 繪製矩形
- MATLAB - 繪製頻譜圖
- MATLAB - 繪製網格曲面圖
- MATLAB - 繪製正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 線性插值
- MATLAB - 二維陣列插值
- MATLAB - 三維陣列插值
- MATLAB - 多項式
- MATLAB - 多項式
- MATLAB - 多項式加法
- MATLAB - 多項式乘法
- MATLAB - 多項式除法
- MATLAB - 多項式的導數
- MATLAB - 變換
- MATLAB - 變換
- MATLAB - 拉普拉斯變換
- MATLAB - 拉普拉斯濾波器
- MATLAB - 高斯-拉普拉斯濾波器
- MATLAB - 逆傅立葉變換
- MATLAB - 傅立葉變換
- MATLAB - 快速傅立葉變換
- MATLAB - 二維逆餘弦變換
- MATLAB - 為座標軸新增圖例
- MATLAB - 面向物件
- MATLAB - 面向物件程式設計
- MATLAB - 類和物件
- MATLAB - 函式過載
- MATLAB - 運算子過載
- MATLAB - 使用者自定義類
- MATLAB - 複製物件
- MATLAB - 代數
- MATLAB - 線性代數
- MATLAB - 高斯消去法
- MATLAB - 高斯-約旦消去法
- MATLAB - 簡化行階梯形
- MATLAB - 特徵值和特徵向量
- MATLAB - 積分
- MATLAB - 積分
- MATLAB - 二重積分
- MATLAB - 梯形法則
- MATLAB - 辛普森法則
- MATLAB - 其他
- MATLAB - 微積分
- MATLAB - 微分
- MATLAB - 矩陣的逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用資源
- MATLAB - 快速指南
- MATLAB - 有用資源
- MATLAB - 討論
MATLAB - 表格
在 MATLAB 中,表格是一種資料結構,用於儲存不同型別資料的表格型資料,這些資料儲存在命名列中。您可以輕鬆地將表格與電子表格或資料庫表格關聯。您可以輕鬆地管理和操作 MATLAB 表格中的資料。
由於表格旨在處理不同型別的資料,因此表格的每一列都可以儲存不同型別的資料,使其能夠靈活地處理異構型別的資料。
在表格中,面向列的單個數據集儲存在變數中。表格變數在資料型別和大小方面可能有所不同,只要它們都具有相同數量的行即可。就像結構中的欄位一樣,表格變數也具有特定的名稱。
由於我們已經大量使用了矩陣,讓我們瞭解表格和矩陣的不同之處。
| 矩陣 | 表格 |
|---|---|
矩陣旨在儲存相同型別的資料,即所有元素都具有相同的資料型別。因此,矩陣本質上是同構的。 |
表格列可以具有不同的資料型別,使其適合處理混合資料。因此,表格本質上是異構的。 |
在矩陣中,我們使用索引來訪問行和列的元素。 |
在表格中,使用列名來訪問表格中的資料。這為我們提供了一種更具描述性和意義的資料訪問方式。 |
使用表格的優勢
表格列被分配了名稱,因此可以很容易地引用和更改特定資料。
表格列可以具有不同的資料型別,允許您在一個結構中儲存各種資訊。
表格帶有內建函式,有助於快速概述資料。它還有助於處理缺失資料和重複資料。
使用表格的缺點
對於大型資料集,與簡單的陣列相比,表格佔用的記憶體更多。
某些矩陣運算可能無法直接應用於表格。
建立 MATLAB 表格
要建立一個 MATLAB 表格,我們將使用 MATLAB 的內建函式 table()。您可以透過兩種方式使用 table() 函式。
一種是從現有的工作區變數建立表格。
第二種是建立一個表格,為稍後填充值的變數預留空間。
語法
T = table(var1,...,varN)
T = table('Size',sz,'VariableTypes',varTypes)
第一種語法 table(var1…varN),這裡 var1…varN 是成為表格中一列的變數,它們應該具有相同數量的行。生成的表格 T 將包含這些列,列名將根據變數名自動分配。
第二種語法 table('Size',sz,'VariableTypes',varTypes),
'Size', sz − 指定表格的大小,即行數和列數。sz 是一個二元素向量,其中第一個元素表示行數,第二個元素表示列數。
'VariableTypes', varTypes − 指定表格中變數(列)的資料型別。varTypes 是一個元胞陣列,每個元胞包含對應列的資料型別。
T = table(var1,...,varN) − 透過組合現有的變數 var1 到 varN 建立一個表格,而
T = table('Size',sz,'VariableTypes',varTypes) − 語法預先分配表格的空間並預先定義變數型別。當您預先知道資料的大小和型別時,這尤其有用。
表格建立示例
示例 1
在這個例子中,讓我們檢查學生的成績,所以我們有學生的名字和他們的成績。
std_names = {'Tiya', 'Riya', 'Siya', 'Jiya'}
std_scores = [85, 72, 92, 78]
studentTable = table(std_names, std_scores)
在上面的例子中,我們有包含學生姓名和成績的變數 std_names 和 std_scores。table 函式將這些變數組合起來建立 studentTable,其中第一列命名為 'std_names',第二列命名為 'std_scores'。
在 MATLAB 命令視窗中執行後,輸出為:
std_names =
{
[1,1] = Tiya
[1,2] = Riya
[1,3] = Siya
[1,4] = Jiya
}
std_scores =
85 72 92 78
示例 2
使用與上述示例中相同的變數,讓我們向其中新增自定義列名。
std_names = {'Tiya', 'Riya', 'Siya', 'Jiya'}
std_scores = [85, 72, 92, 78]
studentTable = table(std_names, std_scores, 'VariableNames', {'Student', 'TestScore'})
現在,當您在 MATLAB 命令視窗中執行相同的操作時,該表格將具有“學生”和“考試成績”之類的列名。
std_names =
{
[1,1] = Tiya
[1,2] = Riya
[1,3] = Siya
[1,4] = Jiya
}
std_scores =
85 72 92 78
示例 3
在這個例子中,我們將建立一個具有大小和變數型別的表格。
tableSize = [5, 3]
variableTypes = {'string', 'double', 'int32'}
Table = table('Size', tableSize, 'VariableTypes', variableTypes)
在這個例子中,tableSize 將表格的大小定義為 5 行 3 列,variableTypes 指示第一列應為 'string' 型別,第二列為 'double' 型別,第三列為 'int32' 型別。
當您在 MATLAB 命令視窗中執行相同的操作時,輸出為:
tableSize =
5 3
variableTypes =
{
[1,1] = string
[1,2] = double
[1,3] = int32
}
訪問表格資料
假設我們有以下表格。
std_names = {'Tiya', 'Riya', 'Siya', 'Jiya'}
std_scores = [85, 72, 92, 78]
studentTable = table(std_names, std_scores, 'VariableNames', {'Student', 'TestScore'})
輸出將是:
std_names =
{
[1,1] = Tiya
[1,2] = Riya
[1,3] = Siya
[1,4] = Jiya
}
std_scores =
85 72 92 78
要訪問資料,您可以按照以下步驟操作:
T.Variables
例如
studentTable.Student studentTable.TestScore
執行上述操作後,您將得到:
>> studentTable.Student
studentTable.TestScore
ans =
1x4 cell array
{'Tiya'} {'Riya'} {'Siya'} {'Jiya'}
ans =
85 72 92 78
獲取單個姓名和分數,您可以執行以下操作:
studentTable.Student{1}
執行後,您將得到:
>> studentTable.Student{1}
ans =
'Tiya'
帶有行名和列名的表格
在上一節中,我們已經看到了如何向表格中新增列名。在這裡,我們將新增行名並訪問已建立的表格中的資料。
Names = {'Siya';'Riya';'Jiya';'Tiya';'Kiya'};
Age = [48;23;28;20;49];
Height = [105;140;150;130;156];
Weight = [60;80;50;45;54];
T = table(Age,Weight,Height,'RowNames',Names)
Age、Weight 和 Height 資料向量成為表格的列。'RowNames' 引數將 Names 元胞陣列中的名稱指定為每個條目的行名。
當您在 MATLAB 命令視窗中執行相同的操作時,輸出為:
>> Names = {'Siya';'Riya';'Jiya';'Tiya';'Kiya'};
Age = [48;23;28;20;49];
Height = [105;140;150;130;156];
Weight = [60;80;50;45;54];
T = table(Age,Weight,Height,'RowNames',Names)
T =
5x3 table
Age Weight Height
___ ______ ______
Siya 48 60 105
Riya 23 80 140
Jiya 28 50 150
Tiya 20 45 130
Kiya 49 54 156
現在,當您想要訪問與名稱相關的任何內容時,可以按如下方式進行:
T('Riya',:)
執行後的輸出為:
>> T('Riya',:)
ans =
1x3 table
Age Weight Height
___ ______ ______
Riya 23 80 140
要獲取多行資料,可以按照如下方法:
T({'Riya','Tiya'},:)
執行後的輸出為:
>> T({'Riya','Tiya'},:)
ans =
2x3 table
Age Weight Height
___ ______ ______
Riya 23 80 140
Tiya 20 45 130