- 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 - 返回語句
- MATLAB - 空函式
- MATLAB - 區域性函式
- MATLAB - 全域性變數
- MATLAB - 函式控制代碼
- MATLAB - 濾波器函式
- MATLAB - 階乘
- MATLAB - 私有函式
- MATLAB - 子函式
- MATLAB - 遞迴函式
- MATLAB - 函式優先順序順序
- MATLAB - 對映函式
- MATLAB - 平均值函式
- MATLAB - 結束函式
- MATLAB - 錯誤處理
- MATLAB - 錯誤處理
- MATLAB - Try...Catch 語句
- MATLAB - 除錯
- MATLAB - 繪圖
- MATLAB - 繪圖
- MATLAB - 繪製陣列
- MATLAB - 繪製向量
- MATLAB - 條形圖
- MATLAB - 直方圖
- MATLAB - 圖形
- MATLAB - 2D 線性圖
- MATLAB - 3D 圖
- MATLAB - 格式化繪圖
- MATLAB - 對數座標軸圖
- MATLAB - 繪製誤差條
- MATLAB - 繪製 3D 等值線圖
- MATLAB - 極座標圖
- MATLAB - 散點圖
- MATLAB - 繪製表示式或函式
- MATLAB - 繪製矩形
- MATLAB - 繪製頻譜圖
- MATLAB - 繪製網格曲面
- MATLAB - 繪製正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 線性插值
- MATLAB - 2D 陣列插值
- MATLAB - 3D 陣列插值
- MATLAB - 多項式
- MATLAB - 多項式
- MATLAB - 多項式加法
- MATLAB - 多項式乘法
- MATLAB - 多項式除法
- MATLAB - 多項式的導數
- MATLAB - 變換
- MATLAB - 變換
- MATLAB - 拉普拉斯變換
- MATLAB - 拉普拉斯濾波器
- MATLAB - 高斯-拉普拉斯濾波器
- MATLAB - 逆傅立葉變換
- MATLAB - 傅立葉變換
- MATLAB - 快速傅立葉變換
- MATLAB - 2D 逆餘弦變換
- 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 中提供的一種資料結構。它本質上是帶有行和列的表格,其中每一行都帶有時間戳。資料儲存在面向列的資料變數中,這些變數將具有不同的資料型別和大小,但行數相同。時間表提供各種與時間相關的函式。它們處理對齊、組合,並允許對給定時間表中帶時間戳的資料進行數學運算。
由於儲存的資料帶有時間戳,因此有助於分析資料,並且可以在不同的領域和應用中發揮作用。在現實世界中,有很多使用場景可以應用時間表。以下是一些您可以使用時間表的主要領域:
- 醫學研究 - 在這裡,您可以使用時間表來儲存和分析與藥物和疾病實驗相關的資料。實驗可以與心肺、幹細胞、感染和免疫等相關。稍後可以使用 plot 和 histogram 等函式繪製資料。
- 股票市場分析 - 來自股票市場的資料量巨大。您可以使用時間表來儲存和分析它。MATLAB 中還有其他有用的方法可以用於計算數字。
- 環境監測和評估 - 來自環境研究的資料可以儲存在時間表中以進行進一步分析。
- 感測器資料 - 使用時間表,您可以分析和儲存與 GPS、溫度等相關的感測器資料。
讓我們深入瞭解 MATLAB 中時間表的工作原理。
建立時間表
MATLAB 提供多種建立時間表的方法,以下是其中一些:
- 使用 timetable() 函式
- 使用 array2timetable() 函式
- 使用 table2timetable() 函式
- 使用 timeseries2timetable() 函式
使用 timetable() 函式
以下是 timetable() 函式的語法:
語法
T = timetable(rowTimes,var1,...,varN)
timetable() 函式將建立一個表格,其中 var1…varN 是輸入資料變數。引數 rowTimes 是一個時間向量。在上述函式中,資料變數 var1..varN 的資料型別可以不同,但應具有相同數量的行。rowTimes 同理,它是一個包含 datetime 或 duration 的向量。
要建立 rowTimes,我們將使用 dateTime() 函式,如下所示:
timer = datetime({'2023-01-01 09:00:00';'2023-01-01 09:30:00';'2023-01-01 10:00:00'});
在 MATLAB 中執行上述程式碼後,輸出如下:
>> timer = datetime({'2023-01-01 09:00:00';'2023-01-01 09:30:00';'2023-01-01 10:00:00'})
timer =
3×1 datetime array
01-Jan-2023 09:00:00
01-Jan-2023 09:30:00
01-Jan-2023 10:00:00
>>
讓我們將計時器和資料變數饋送到 timetable 函式,並在 MATLAB 中檢視輸出。
T = timetable(timer ,DayTemp ,DayPressure)
在 MATLAB 中執行後,我們得到以下輸出
>> timer = datetime({'2023-01-01 09:00:00';'2023-01-01 09:30:00';'2023-01-01 10:00:00'});
DayTemp = [28.3;30.0;33.3];
DayPressure = [23.1;23.03;33.9];
T = timetable(timer ,DayTemp ,DayPressure)
T =
3×2 timetable
timer DayTemp DayPressure
____________________ _______ ___________
01-Jan-2023 09:00:00 28.3 23.1
01-Jan-2023 09:30:00 30 23.03
01-Jan-2023 10:00:00 33.3 33.9
>>
使用 array2timetable() 函式
以下是 array2timetable() 函式的語法:
語法
array2timetable() 函式將返回一個時間表,其中 X 是一個 MXN 陣列,rowTimes 是一個大小為 Mx1 的向量陣列。
讓我們看一個使用 array2timetable() 函式建立時間表的示例。
示例
首先,讓我們建立一個 3x3 矩陣作為 X。
X = rand(3,3)
現在讓我們建立一個行向量 rowTimes。
rowTimes = seconds(1:3)
現在讓我們在 array2timetable() 函式中使用 X 和 rowTimes 並檢視輸出
X = rand(3,3) rowTimes = seconds(1:3) TT = array2timetable(X,'RowTimes',rowTimes)
在 MATLAB 中執行後的輸出如下:
>> X = rand(3,3)
rowTimes = seconds(1:3)
TT = array2timetable(X,'RowTimes',rowTimes)
X =
0.6787 0.3922 0.7060
0.7577 0.6555 0.0318
0.7431 0.1712 0.2769
rowTimes =
1×3 duration array
1 sec 2 sec 3 sec
TT =
3×3 timetable
Time X1 X2 X3
_____ _______ _______ ________
1 sec 0.67874 0.39223 0.70605
2 sec 0.75774 0.65548 0.031833
3 sec 0.74313 0.17119 0.27692
>>
使用 table2timetable() 函式
在本例中,我們將使用一個表格,使用 table2timetable() 函式從中建立一個時間表。
表格是 MATLAB 中的一種資料型別,它以表格格式儲存資料,就像您在電子表格中看到資料一樣。
表格示例如下:
Name = {'Siya';'Riya';'Helen';'Reena'};
Age = [25;30;35;40];
Height = [149;150;160;153];
Weight = [50;65;48;52];
Timer = datetime({'2023-01-01 09:00:00';'2023-01-01 09:30:00';'2023-01-01 10:00:00';'2023-01-01 11:00:00'})
T = table(Name,Age,Height,Weight,Timer)
在 MATLAB 中執行後,建立的表格如下所示:
T = table(Name,Age,Height,Weight, Timer)
T =
4×5 table
Name Age Height Weight Timer
_________ ___ ______ ______ ___________________
{'Siya' } 25 149 50 2023-01-01 09:00:00
{'Riya' } 30 150 65 2023-01-01 09:30:00
{'Helen'} 35 160 48 2023-01-01 10:00:00
{'Reena'} 40 153 52 2023-01-01 11:00:00
現在讓我們使用相同的表格從中建立一個時間表。
所用函式的語法為:
TT = table2timetable(T)
T 是輸入到 table2timetable() 函式的表格。讓我們在 MATLAB 中執行相同的操作
>> TT = table2timetable(T)
TT =
4×4 timetable
Timer Name Age Height Weight
____________________ _________ ___ ______ ______
01-Jan-2023 09:00:00 {'Siya' } 25 149 50
01-Jan-2023 09:30:00 {'Riya' } 30 150 65
01-Jan-2023 10:00:00 {'Helen'} 35 160 48
01-Jan-2023 11:00:00 {'Reena'} 40 153 52
>>
使用 timeseries2timetable() 函式
timeseries2timetable() 函式將時間序列物件轉換為時間表。
語法如下:
TT = timeseries2timetable(ts)
這裡 ts 是時間序列物件。
下面的示例顯示了 timeseries() 函式,它返回時間序列物件,我們稍後可以在 timeseries2timetable() 函式中使用它。
ts = timeseries(rand(5,1),[0 05 10 15 20])
時間序列物件由 5 個以 5 秒間隔取樣的隨機陣列成。
在 MATLAB 中執行後的輸出為:
>> ts = timeseries(rand(5,1),[0 05 10 15 20])
timeseries
Common Properties:
Name: 'unnamed'
Time: [5x1 double]
TimeInfo: [1x1 tsdata.timemetadata]
Data: [5x1 double]
DataInfo: [1x1 tsdata.datametadata]
More properties, Methods
>> ts.Time
ans =
0
5
10
15
20
>>
屬性 ts.Time 返回時間。
現在讓我們在 timeseries2timetable() 函式中使用時間序列物件
TT = timeseries2timetable(ts)
在 MATLAB 中執行後的輸出如下:
>> TT = timeseries2timetable(ts)
TT =
5×1 timetable
Time Data
______ _______
0 sec 0.81472
5 sec 0.90579
10 sec 0.12699
15 sec 0.91338
20 sec 0.63236
>>