이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
timetable
타임스탬프가 지정된 서로 다른 유형의 행과 변수를 포함하는 시계열 데이터 테이블
설명
timetable
은 시계열 데이터와 함께 사용할 수 있도록 각 행에 시간값을 연결하는 테이블의 한 유형입니다. 테이블과 마찬가지로 타임테이블은 행 개수가 같은 경우에 한해 서로 다른 데이터형과 크기를 가질 수 있는 열 방향 데이터 변수를 저장합니다. 또한 타임테이블은 하나 이상의 타임테이블에서 타임스탬프가 지정된 데이터를 정렬하고, 결합하고, 이 데이터를 사용하여 계산을 수행할 수 있는 시간 관련 함수를 제공합니다.
타임테이블의 행 시간값은 행에 레이블을 지정하는 datetime
형 값 또는 duration
형 값입니다. 행 시간값과 변수로 타임테이블의 요소를 참조할 수 있습니다. 타임테이블의 요소를 참조하려면 소괄호 ()
를 사용하여 하위 테이블을 반환하거나 중괄호 {}
를 사용하여 내용을 추출하십시오. 이름을 사용하여 행 시간값으로 구성된 벡터와 변수를 참조할 수 있습니다. 인덱싱에 대한 자세한 내용은 타임테이블에서 시간값 선택하기 항목과 테이블의 데이터에 액세스하기 항목을 참조하십시오.
타임테이블에서 이벤트를 찾아 레이블을 지정하려면 타임테이블에 이벤트 테이블을 연결하십시오. 이벤트 테이블에는 이벤트 레이블 및 이벤트에 대한 기타 정보와 함께 이벤트가 발생하는 시간이 나열됩니다. 자세한 내용은 eventtable
항목을 참조하십시오. (R2023a 이후)
생성
타임테이블을 만들려면 readtimetable
함수를 사용하여 파일의 데이터를 테이블로 읽어 들이거나 다른 데이터형을 가진 변수를 변환할 수 있습니다.
변환하려면 다음과 같이 하십시오.
배열은
array2timetable
함수를 사용합니다.테이블은
table2timetable
함수를 사용합니다.timeseries
객체는timeseries2timetable
함수를 사용합니다.
Simulink® 사용자는 extractTimetable
(Simulink) 함수를 사용하여 Simulink.SimulationData.Dataset
객체에서 데이터를 추출할 수 있습니다.
아래에 설명된 대로 timetable
함수를 사용할 수도 있습니다. 입력 배열에서 타임테이블을 생성하거나, 나중에 값을 채울 수 있도록 변수에 공간을 사전할당합니다. 행 시간을 지정하려면 행 시간값으로 구성된 입력 벡터를 사용하거나 샘플 레이트 또는 시간 스텝을 사용하여 행 시간을 생성할 수 있습니다.
구문
설명
기존 변수 결합
TT = timetable(
은 입력 데이터 변수 rowTimes
,var1,...,varN
)var1,...,varN
과 시간 벡터 rowTimes
에서 타임테이블을 생성합니다. 데이터 변수는 행 개수가 동일한 경우에 한해 크기와 데이터형이 다를 수 있습니다. rowTimes
도 행 개수가 동일한 datetime
형 벡터 또는 duration
형 벡터여야 합니다.
TT = timetable(
는 var1,...,varN
,'RowTimes',rowTimes
)rowTimes
를 TT
의 행 시간값 소스로 지정합니다. 이 구문을 사용하면 rowTimes
가 이름이 다른 작업 공간 변수인 경우에도 TT
의 행 시간값 벡터 이름은 항상 Time
입니다.
TT = timetable(
는 샘플 레이트 var1,...,varN
,'SampleRate',Fs
)Fs
를 사용하여 규칙적인 간격의 행 시간값을 계산합니다. Fs
는 초당 샘플 수(Hz)를 지정하는 양의 숫자형 스칼라입니다. 첫 번째 행 시간값은 0초입니다.
TT = timetable(
는 시간 스텝 var1,...,varN
,'TimeStep',dt
)dt
를 사용하여 규칙적인 간격의 행 시간값을 계산합니다. dt
는 연속된 행 시간값 사이의 시간 길이를 지정하는 duration
형 값 또는 calendarDuration
형 값입니다. 첫 번째 행 시간값은 0초입니다.
공백 사전할당
이름 또는 시작 시간 설정
TT = timetable(___,
는 하나 이상의 이름-값 쌍의 인수를 사용하여 입력 인수를 추가로 지정합니다. 예를 들어, Name,Value
)'VariableNames'
이름-값 쌍을 사용하여 변수 이름을 지정할 수 있습니다. 'StartTime'
이름-값 쌍을 샘플 레이트 또는 시간 스텝과 함께 사용하여 시작 시간을 지정할 수도 있습니다. 이 구문은 위에 열거된 구문 중 하나의 입력 인수에 사용할 수 있습니다.
입력 인수
var1,...,varN
— 입력 변수
배열
입력 변수로, 행 개수가 같은 배열로 지정됩니다. 입력 변수는 행 개수가 동일한 경우에 한해 크기와 데이터형이 다를 수 있습니다.
일반적인 입력 변수는 숫자형 배열, 논리형 배열, string형 배열, 구조체형 배열, 셀형 배열입니다.
입력 변수는 배열인 객체일 수도 있습니다. 이러한 배열은 var(index1,...,indexN)
형식의 인덱싱을 지원해야 합니다. 여기서 index1
은 변수 var
의 행에 대응하는 숫자형 벡터 또는 논리형 벡터입니다. 또한, 이 배열은 dim
인수와 함께 vertcat
메서드와 size
메서드를 모두 구현해야 합니다.
rowTimes
— 타임테이블의 행과 연관된 시간값
datetime
형 벡터 | duration
형 벡터
타임테이블의 행과 연관된 시간값으로, datetime
형 벡터 또는 duration
형 벡터로 지정됩니다. 각 시간값은 출력 타임테이블 TT
의 행에 레이블을 지정합니다. rowTimes
의 시간값은 고유하거나 정렬되거나 규칙적이지 않아도 됩니다.
sz
— 사전할당된 타임테이블의 크기
요소를 2개 가진 숫자형 벡터
사전할당된 타임테이블의 크기로, 요소를 2개 가진 숫자형 벡터로 지정됩니다. sz
의 첫 번째 요소는 행 개수를 지정하고, 두 번째 요소는 타임테이블 변수 개수를 지정합니다.
varTypes
— 사전할당된 변수의 데이터형
문자형 벡터로 구성된 셀형 배열 | string형 배열
사전할당된 변수의 데이터형으로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. varTypes
로 지정된 데이터형 개수는 sz
의 두 번째 요소로 지정된 변수 개수와 같아야 합니다.
varTypes
에는 다음 표에 표시된 이름을 비롯해 모든 데이터형의 이름이 포함될 수 있습니다.
데이터형 이름 | 각 요소의 초기값 |
---|---|
| 배정밀도 또는 단정밀도 |
| 배정밀도 또는 단정밀도 |
| 부호 있는 8비트, 16비트, 32비트 또는 64비트 정수 |
| 부호 없는 8비트, 16비트, 32비트 또는 64비트 정수 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 필드 없는 스칼라 구조체 |
| 변수 없는 테이블 |
| 변수는 없고 행 시간값은 |
그 밖의 다른 데이터형의 경우, 초기값은 해당 데이터형 또는 클래스가 배열의 할당되지 않은 요소를 "채우는" 데 사용하는 값이 됩니다.
'char'
을 데이터형으로 지정하면 timetable
함수는 해당 변수를 문자형 배열이 아니라 문자형 벡터로 구성된 셀형 배열로 사전할당합니다. 따라서 문자형 배열인 테이블 또는 타임테이블 변수는 생성하지 않는 것이 가장 좋습니다. 테이블이나 타임테이블에서 텍스트 데이터를 사용하는 경우 string형 배열이나 categorical형 배열을 사용해 보십시오.
Fs
— 샘플 레이트
양의 숫자형 스칼라
샘플 레이트로, 양의 숫자형 스칼라로 지정됩니다. Fs
는 초당 샘플 수(Hz)를 지정합니다.
dt
— 시간 스텝
duration
형 스칼라 | calendarDuration
형 스칼라
시간 스텝으로, duration
형 스칼라 또는 calendarDuration
형 스칼라로 지정됩니다.
dt
를 calendarDuration
형 값으로 지정하고 'StartTime'
이름-값 쌍의 인수를 지정하는 경우 'StartTime'
값은 datetime
형 스칼라여야 합니다.
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: TT = timetable(rowTimes,T,W,'VariableNames',{'Temperature','WindSpeed'})
는 입력 배열 T
와 W
에서 타임테이블을 생성하고 해당 타임테이블 변수의 이름을 Temperature
와 WindSpeed
로 지정합니다.
VariableNames
— 변수 이름
문자형 벡터로 구성된 셀형 배열 | string형 배열
변수 이름으로, 비어 있지 않은 고유한 요소를 갖는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다.
배열의 이름 개수는 타임테이블 변수의 개수와 같아야 합니다.
timetable
함수는 또한 타임테이블의VariableNames
속성에 변수 이름을 저장합니다.변수 이름에는 공백과 비ASCII 문자를 포함하여 모든 Unicode® 문자를 사용할 수 있습니다.
DimensionNames
— 차원 이름
문자형 벡터로 구성된, 요소를 2개 가진 셀형 배열 | 요소를 2개 가진 string형 배열
R2021a 이후
차원 이름으로, 문자형 벡터 요소를 2개 가진 셀형 배열 또는 비어 있지 않고 고유한 요소를 2개 가진 string형 배열로 지정됩니다.
timetable
함수는 또한 타임테이블의DimensionNames
속성에 차원 이름도 저장합니다.차원 이름에는 공백 및 비ASCII 문자를 포함하여 모든 Unicode 문자를 사용할 수 있습니다.
R2021a 이전 릴리스에서는 차원 이름을 지정하려면 DimensionNames
속성을 설정하는 방법밖에 없었습니다.
StartTime
— 시작 시간
datetime
형 스칼라 | duration
형 스칼라
시작 시간으로, datetime
형 스칼라 또는 duration
형 스칼라로 지정됩니다. 또한 시작 시간은 타임테이블에 있는 첫 번째 행의 행 시간값입니다.
'SampleRate'
또는 'TimeStep'
이름-값 쌍의 인수도 지정해야만 'StartTime'
을 지정할 수 있습니다.
시작 시간이
datetime
형 값이면TT
의 행 시간값은datetime
형 값입니다.시작 시간이
duration
형이면 행 시간값은 duration형입니다.시간 스텝
dt
가calendarDuration
형 값이면 시작 시간은datetime
형 값이어야 합니다.
속성
타임테이블 메타데이터 속성에 액세스하기
타임테이블에는 타임테이블, 타임테이블 행 시간값 및 타임테이블 변수를 설명하는 메타데이터 속성이 포함됩니다. 구문
을 사용하여 이러한 속성에 액세스합니다. 여기서 timetableName
.Properties.PropertyName
은 속성 이름입니다. 예를 들어, PropertyName
TT.Properties.VariableNames
속성을 통해 타임테이블 TT
의 변수 이름에 액세스할 수 있습니다.
구문
를 사용하여 메타데이터 속성의 요약을 반환할 수 있습니다.timetableName
.Properties
점 구문을 사용하여 직접 타임테이블 데이터에 액세스할 수 있기 때문에 타임테이블에서는 Properties
속성을 통해 메타데이터에 액세스할 수 있습니다. 예를 들어, 타임테이블 TT
에 Var1
이라는 변수가 있으면 구문 TT.Var1
을 사용하여 이 변수의 값에 액세스할 수 있습니다.
타임테이블 메타데이터
DimensionNames
— 차원 이름
{'Time','Variables'}
(디폴트 값) | 문자형 벡터로 구성된, 요소를 2개 가진 셀형 배열 | 요소를 2개 가진 string형 배열
차원 이름으로, 문자형 벡터 요소를 2개 가진 셀형 배열 또는 비어 있지 않고 고유한 요소를 2개 가진 string형 배열로 지정됩니다.
차원 이름에는 공백 및 비ASCII 문자를 포함하여 모든 Unicode 문자를 사용할 수 있습니다.
string형 배열을 사용하여 이 속성을 지정하면 이 속성은 문자형 벡터로 구성된 셀형 배열로 변환되어 저장됩니다.
2개의 차원 이름을 사용하여 타임테이블 데이터에 액세스할 수 있습니다.
점 구문과 첫 번째 차원 이름을 사용하면 행 시간값을 벡터로서 액세스할 수 있습니다.
점 구문과 두 번째 차원 이름을 사용하면
{:,:}
구문을 사용하여 타임테이블의 요소를 참조한 것처럼 모든 변수의 데이터가 하나의 배열로 결합됩니다.
예제
타임테이블을 생성하고 타임테이블 차원 이름을 표시합니다. 차원 이름을 점 구문과 함께 사용하여 행 시간값과 데이터에 액세스할 수 있습니다.
TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ... [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]); TT.Properties.DimensionNames
ans = 1x2 cell
{'Time'} {'Variables'}
첫 번째 차원 이름을 사용하여 행 시간값에 액세스합니다.
TT.Time
ans = 3x1 datetime
18-Dec-2015
19-Dec-2015
20-Dec-2015
두 번째 차원 이름을 사용하여 데이터에 액세스합니다. 이 구문은 TT{:,:,}
와 동일합니다.
TT.Variables
ans = 3×3
37.3000 30.1000 13.4000
39.1000 30.0300 6.5000
42.3000 29.9000 7.3000
Properties.DimensionNames
속성을 사용하여 테이블의 차원 이름을 수정합니다. 차원 이름을 수정하면 구문 TT.Date
와 TT.WeatherData
를 사용하여 각각 행 시간값과 데이터에 액세스할 수 있습니다.
TT.Properties.DimensionNames = {'Date','WeatherData'}; TT.Properties
ans = TimetableProperties with properties: Description: '' UserData: [] DimensionNames: {'Date' 'WeatherData'} VariableNames: {'Var1' 'Var2' 'Var3'} VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowTimes: [3x1 datetime] StartTime: 18-Dec-2015 SampleRate: NaN TimeStep: 1d Events: [] CustomProperties: No custom properties are set. Use addprop and rmprop to modify CustomProperties.
Description
— 타임테이블 설명
''
(디폴트 값) | 문자형 벡터 | string형 스칼라
타임테이블 설명으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 이 설명은 summary
함수를 사용할 때 확인할 수 있습니다.
string형 스칼라를 사용하여 이 속성을 지정하면 이 속성은 문자형 벡터로 변환되어 저장됩니다.
예제
타임테이블을 생성합니다. 변수 이름과 타임테이블 설명을 수정합니다. 결과의 요약을 표시합니다.
TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ... [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]); TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'}; TT.Properties.Description = 'Weather Data from December 2015'; summary(TT)
Description: Weather Data from December 2015 RowTimes: Time: 3x1 datetime Values: Min 18-Dec-2015 Median 19-Dec-2015 Max 20-Dec-2015 TimeStep 24:00:00 Variables: Temp: 3x1 double Values: Min 37.3 Median 39.1 Max 42.3 Pressure: 3x1 double Values: Min 29.9 Median 30.03 Max 30.1 WindSpeed: 3x1 double Values: Min 6.5 Median 7.3 Max 13.4
UserData
— 추가 타임테이블 정보
[]
(디폴트 값) | 배열
추가 타임테이블 정보로, 배열로 지정됩니다. 이 속성을 사용하면 타임테이블에 어떠한 유형의 데이터도 추가할 수 있습니다.
예제
타임테이블을 생성합니다. 변수 이름을 수정합니다. 익명 함수를 타임테이블과 연관된 사용자 데이터로서 추가합니다.
TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ... [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]); TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'}; Fahrenheit2Celsius = @(x) (5.0/9.0).*(x - 32); TT.Properties.UserData = Fahrenheit2Celsius; TT.Properties
ans = TimetableProperties with properties: Description: '' UserData: @(x)(5.0/9.0).*(x-32) DimensionNames: {'Time' 'Variables'} VariableNames: {'Temp' 'Pressure' 'WindSpeed'} VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowTimes: [3x1 datetime] StartTime: 18-Dec-2015 SampleRate: NaN TimeStep: 1d Events: [] CustomProperties: No custom properties are set. Use addprop and rmprop to modify CustomProperties.
행 시간값 메타데이터
RowTimes
— 행 시간값
datetime
형 벡터 | duration
형 벡터
행 시간값으로, datetime
형 벡터 또는 duration
형 벡터로 지정됩니다.
타임테이블의 각 행에 대응하는 행 시간값이 있어야 합니다.
타임테이블에는 중복되거나 정렬되지 않았거나
NaT
값 또는NaN
값을 갖는 행 시간값이 있을 수 있습니다.행 시간값은 타임테이블을 볼 때 확인할 수 있습니다. 또한, 소괄호 또는 중괄호 안에 행 시간값을 사용하여 타임테이블 데이터에 액세스할 수도 있습니다.
행 시간값에 액세스할 수 있는 또 다른 방법은 점 구문과 타임테이블의 첫 번째 차원 이름을 사용하는 것입니다.
예제
타임테이블을 생성합니다. 그런 다음, Properties.RowTimes
속성을 사용하여 타임테이블의 행 시간값을 바꿉니다.
TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ... [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3])
TT=3×3 timetable
Time Var1 Var2 Var3
___________ ____ _____ ____
18-Dec-2015 37.3 30.1 13.4
19-Dec-2015 39.1 30.03 6.5
20-Dec-2015 42.3 29.9 7.3
Dates = datetime(2017,1,1:3); TT.Properties.RowTimes = Dates
TT=3×3 timetable
Time Var1 Var2 Var3
___________ ____ _____ ____
01-Jan-2017 37.3 30.1 13.4
02-Jan-2017 39.1 30.03 6.5
03-Jan-2017 42.3 29.9 7.3
행 시간값에 액세스할 수 있는 또 다른 방법은 점 구문을 타임테이블의 첫 번째 차원 이름과 함께 사용하는 것입니다.
TT.Properties.DimensionNames
ans = 1x2 cell
{'Time'} {'Variables'}
TT.Time
ans = 3x1 datetime
01-Jan-2017
02-Jan-2017
03-Jan-2017
StartTime
— 행 시간값의 시작 시간
datetime
형 스칼라 | duration
형 스칼라
행 시간값의 시작 시간으로, datetime
형 스칼라 또는 duration
형 스칼라로 지정됩니다. 시작 시간은 타임테이블에 있는 첫 번째 행의 행 시간값과 같고 데이터형도 동일합니다.
시작 시간이
datetime
형 값이면TT
의 행 시간값은datetime
형 값입니다.시작 시간이
duration
형이면 행 시간값은 duration형입니다.시간 스텝이
calendarDuration
형 값이면 시작 시간은datetime
형 값이어야 합니다.
타임테이블이 비어 있으면 시작 시간은 NaN
입니다.
예제
타임테이블을 생성합니다. 이 타임테이블에서 연속된 행 사이의 시간 스텝이 같지 않으므로 이 타임테이블은 불규칙적입니다.
TT = timetable(datetime({'2015-12-18';'2015-12-20';'2015-12-21'}), ... [37.3;39.1;42.3],[13.4;6.5;7.3],{'N';'SE';'NW'}); TT.Properties.VariableNames = {'Temperature','WindSpeed','WindDirection'}
TT=3×3 timetable
Time Temperature WindSpeed WindDirection
___________ ___________ _________ _____________
18-Dec-2015 37.3 13.4 {'N' }
20-Dec-2015 39.1 6.5 {'SE'}
21-Dec-2015 42.3 7.3 {'NW'}
해당 속성을 표시합니다. StartTime
속성의 값은 첫 번째 행 시간값과 같습니다. 타임테이블은 규칙적이든 불규칙적이든, 비어 있지 않은 한 항상 시작 시간을 가집니다.
TT.Properties
ans = TimetableProperties with properties: Description: '' UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowTimes: [3x1 datetime] StartTime: 18-Dec-2015 SampleRate: NaN TimeStep: NaN Events: [] CustomProperties: No custom properties are set. Use addprop and rmprop to modify CustomProperties.
StartTime
속성을 수정합니다. 모든 행 시간값이 새 값을 갖는 것을 볼 수 있습니다. 각 행 시간값은 첫 번째 행 시간값의 원래 값과 새 시작 시간의 차이만큼 변동됩니다.
TT.Properties.StartTime = datetime('2018-04-09')
TT=3×3 timetable
Time Temperature WindSpeed WindDirection
___________ ___________ _________ _____________
09-Apr-2018 37.3 13.4 {'N' }
11-Apr-2018 39.1 6.5 {'SE'}
12-Apr-2018 42.3 7.3 {'NW'}
SampleRate
— 샘플 레이트
양의 숫자형 스칼라
샘플 레이트로, 양의 숫자형 스칼라로 지정됩니다. 샘플 레이트는 초당 샘플 수(Hz)입니다.
행 시간값이 규칙적이지 않거나 타임테이블이 비어 있으면 샘플 레이트는 NaN
입니다.
예제
규칙적인 타임테이블을 생성합니다. 이 타임테이블에서 행 시간값은 동일한 샘플 레이트를 사용하여 만든 duration형입니다.
Intensity = [100;98.7;95.2;101.4;99.1];
TT = timetable(Intensity,'SampleRate',100)
TT=5×1 timetable
Time Intensity
________ _________
0 sec 100
0.01 sec 98.7
0.02 sec 95.2
0.03 sec 101.4
0.04 sec 99.1
해당 속성을 표시합니다. SampleRate
속성은 샘플 레이트(단위: Hz)를 저장합니다.
TT.Properties
ans = TimetableProperties with properties: Description: '' UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Intensity'} VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowTimes: [5x1 duration] StartTime: 0 sec SampleRate: 100 TimeStep: 0.01 sec Events: [] CustomProperties: No custom properties are set. Use addprop and rmprop to modify CustomProperties.
SampleRate
속성을 수정합니다. 시작 시간은 같지만 샘플 레이트가 작아졌기 때문에 다른 모든 행 시간값이 달라집니다. 그러나 변수 Intensity
는 동일하게 유지됩니다.
TT.Properties.SampleRate = 25
TT=5×1 timetable
Time Intensity
________ _________
0 sec 100
0.04 sec 98.7
0.08 sec 95.2
0.12 sec 101.4
0.16 sec 99.1
TimeStep
— 시간 스텝
duration
형 스칼라 | calendarDuration
형 스칼라
시간 스텝으로, duration
형 스칼라 또는 calendarDuration
형 스칼라로 지정됩니다.
시간 스텝을
calendarDuration
형 값(예: 달력상의 월수)으로 지정하면 행 시간값으로 구성된 벡터는datetime
형 벡터여야 합니다.시간 스텝을
duration
형 값(예: 초)으로 지정하면 행 시간값으로 구성된 벡터는datetime
형 벡터 또는duration
형 벡터일 수 있습니다.
행 시간값이 규칙적이지 않거나 타임테이블이 비어 있으면 시간 스텝은 NaN
입니다.
예제
규칙적인 타임테이블을 생성합니다. 이 타임테이블에서 행 시간값은 동일한 시간 스텝을 사용하여 만든 duration형입니다.
Intensity = [100;98.7;95.2;101.4;99.1];
TT = timetable(Intensity,'TimeStep',seconds(0.01))
TT=5×1 timetable
Time Intensity
________ _________
0 sec 100
0.01 sec 98.7
0.02 sec 95.2
0.03 sec 101.4
0.04 sec 99.1
해당 속성을 표시합니다. TimeStep
속성에는 시간 스텝이 duration형으로 들어 있습니다.
TT.Properties
ans = TimetableProperties with properties: Description: '' UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Intensity'} VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowTimes: [5x1 duration] StartTime: 0 sec SampleRate: 100 TimeStep: 0.01 sec Events: [] CustomProperties: No custom properties are set. Use addprop and rmprop to modify CustomProperties.
TimeStep
속성을 수정합니다. 시작 시간은 같지만 시간 스텝이 커졌기 때문에 다른 모든 행 시간값이 달라집니다. 그러나 변수 Intensity
는 동일하게 유지됩니다.
TT.Properties.TimeStep = seconds(0.04)
TT=5×1 timetable
Time Intensity
________ _________
0 sec 100
0.04 sec 98.7
0.08 sec 95.2
0.12 sec 101.4
0.16 sec 99.1
Events
— 이벤트
이벤트 테이블 | datetime
형 벡터 | duration
형 벡터
R2023a 이후
이벤트로, 이벤트 테이블, datetime
형 벡터 또는 duration
형 벡터로 지정됩니다. 이벤트 테이블에는 이벤트가 발생하는 시간, 이벤트를 설명하는 레이블 및 경우에 따라 이벤트에 대한 기타 정보가 나열됩니다. 이벤트 중에 발생하는 타임테이블 행을 찾아 레이블을 지정하려면 Events
속성에 할당하여 이벤트를 타임테이블에 연결하십시오.
datetime
형 벡터 또는 duration
형 벡터를 할당하면 이러한 벡터가 디폴트 레이블이 있는 이벤트 테이블로 변환되고 이 이벤트 테이블이 Events
속성에 할당됩니다.
타임테이블의 행 시간값 및 이벤트와 연결된 이벤트 시간값은 동일한 데이터형을 가져야 합니다. 예를 들어, duration
형 벡터 또는 이벤트 시간값이 duration
형 값인 이벤트 테이블은 행 시간값이 datetime
형 값인 타임테이블에 연결할 수 없습니다.
이벤트 테이블에 대한 자세한 내용은 eventtable
항목을 참조하십시오.
변수 메타데이터
VariableNames
— 변수 이름
문자형 벡터로 구성된 셀형 배열 | string형 배열
변수 이름으로, 비어 있지 않은 고유한 요소를 갖는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. 이름 개수는 변수의 개수와 같아야 합니다.
변수 이름에는 공백과 비ASCII 문자를 포함하여 모든 Unicode 문자를 사용할 수 있습니다.
변수 이름은 타임테이블을 볼 때, 그리고
summary
함수를 사용할 때 확인할 수 있습니다. 또한, 소괄호 또는 중괄호 안에 변수 이름을 사용하거나 점 인덱싱과 함께 변수 이름을 사용하여 테이블 데이터에 액세스할 수도 있습니다.string형 배열을 사용하여 이 속성을 지정하면 이 속성은 문자형 벡터로 구성된 셀형 배열로 변환되어 저장됩니다.
예제
디폴트 변수 이름을 가진 타임테이블을 만듭니다. 그런 다음, Properties.VariableNames
속성을 사용하여 이름을 수정합니다.
TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ... [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3])
TT=3×3 timetable
Time Var1 Var2 Var3
___________ ____ _____ ____
18-Dec-2015 37.3 30.1 13.4
19-Dec-2015 39.1 30.03 6.5
20-Dec-2015 42.3 29.9 7.3
TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'}
TT=3×3 timetable
Time Temp Pressure WindSpeed
___________ ____ ________ _________
18-Dec-2015 37.3 30.1 13.4
19-Dec-2015 39.1 30.03 6.5
20-Dec-2015 42.3 29.9 7.3
변수를 표시하고 수정하는 기본적인 방법은 점 구문을 사용하여 이름으로 변수에 액세스하는 것입니다.
TT.Temp
ans = 3×1
37.3000
39.1000
42.3000
TT.Pressure(3) = 30
TT=3×3 timetable
Time Temp Pressure WindSpeed
___________ ____ ________ _________
18-Dec-2015 37.3 30.1 13.4
19-Dec-2015 39.1 30.03 6.5
20-Dec-2015 42.3 30 7.3
VariableDescriptions
— 변수 설명
{}
(디폴트 값) | 문자형 벡터로 구성된 셀형 배열 | string형 배열
변수 설명으로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. 이 속성은 빈 셀형 배열(디폴트 값)일 수 있습니다. 배열이 비어 있지 않은 경우, 여기에는 변수 개수만큼의 요소가 포함되어야 합니다. 설명이 없는 변수에 대해 개별적으로 빈 문자형 벡터 또는 빈 string형을 지정할 수 있습니다.
변수 설명은
summary
함수를 사용할 때 확인할 수 있습니다.string형 배열을 사용하여 이 속성을 지정하면 이 속성은 문자형 벡터로 구성된 셀형 배열로 변환되어 저장됩니다.
예제
타임테이블을 생성합니다. 변수 이름과 변수 설명을 수정합니다. 결과의 요약을 표시합니다.
TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ... [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]); TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'}; TT.Properties.VariableDescriptions = {'Temperature (external)', ... 'Pressure in Hg', ... 'Wind speed at sensor 123'}; summary(TT)
RowTimes: Time: 3x1 datetime Values: Min 18-Dec-2015 Median 19-Dec-2015 Max 20-Dec-2015 TimeStep 24:00:00 Variables: Temp: 3x1 double Properties: Description: Temperature (external) Values: Min 37.3 Median 39.1 Max 42.3 Pressure: 3x1 double Properties: Description: Pressure in Hg Values: Min 29.9 Median 30.03 Max 30.1 WindSpeed: 3x1 double Properties: Description: Wind speed at sensor 123 Values: Min 6.5 Median 7.3 Max 13.4
VariableUnits
— 변수 단위
{}
(디폴트 값) | 문자형 벡터로 구성된 셀형 배열 | string형 배열
변수 단위로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. 이 속성은 빈 셀형 배열(디폴트 값)일 수 있습니다. 배열이 비어 있지 않은 경우, 여기에는 변수 개수만큼의 요소가 포함되어야 합니다. 단위가 없는 변수에 대해 개별적으로 빈 문자형 벡터 또는 빈 string형을 지정할 수 있습니다.
변수 단위는
summary
함수를 사용할 때 확인할 수 있습니다.string형 배열을 사용하여 이 속성을 지정하면 이 속성은 문자형 벡터로 구성된 셀형 배열로 변환되어 저장됩니다.
예제
타임테이블을 생성합니다. 변수 이름과 변수 단위를 수정합니다. 결과의 요약을 표시합니다.
TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ... [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]); TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'}; TT.Properties.VariableUnits = {'degrees F','mm Hg','mph'}; summary(TT)
RowTimes: Time: 3x1 datetime Values: Min 18-Dec-2015 Median 19-Dec-2015 Max 20-Dec-2015 TimeStep 24:00:00 Variables: Temp: 3x1 double Properties: Units: degrees F Values: Min 37.3 Median 39.1 Max 42.3 Pressure: 3x1 double Properties: Units: mm Hg Values: Min 29.9 Median 30.03 Max 30.1 WindSpeed: 3x1 double Properties: Units: mph Values: Min 6.5 Median 7.3 Max 13.4
VariableContinuity
— 연속 변수 또는 이산 변수로서의 상태
[]
(디폴트 값) | 문자형 벡터로 구성된 셀형 배열 | string형 배열
연속 변수 또는 이산 변수로서의 상태로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. 이 속성은 빈 배열(디폴트 값)일 수 있습니다. 배열이 비어 있지 않은 경우, 여기에는 변수 개수만큼의 요소가 포함되어야 합니다. 각 요소는 'unset'
, 'continuous'
, 'step'
또는 'event'
일 수 있습니다.
VariableContinuity
의 값은 retime
함수 또는 synchronize
함수의 작동 방식에 영향을 미칩니다. VariableContinuity
를 지정하고 retime
또는 synchronize
를 호출하는 경우 방법을 지정하지 않아도 됩니다. 대신, retime
과 synchronize
가 다음 디폴트 방법을 사용하여 출력 타임테이블 변수를 채웁니다.
'unset'
— 변수의 유형에 맞는 누락 데이터 표시자(예: 숫자형 변수의 경우NaN
)를 사용하여 값을 채웁니다.'continuous'
— 선형 보간을 사용하여 값을 채웁니다.'step'
— 이전 값을 사용하여 값을 채웁니다.'event'
— 변수의 유형에 맞는 누락 데이터 표시자(예: 숫자형 변수의 경우NaN
)를 사용하여 값을 채웁니다.
retime
또는 synchronize
에 대한 입력 인수로 방법을 지정하면 이 방법이 VariableContinuity
에 지정된 값을 재정의합니다.
VariableContinuity
속성 사용에 대한 자세한 내용은 여러 가지 방법으로 타임테이블 변수에 대한 시간 값을 재지정하고 동기화하기 항목을 참조하십시오.
예
타임테이블을 생성합니다. 각 변수의 matlab.tabular.Continuity
값을 지정합니다.
TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ... [37.3;39.1;42.3],[13.4;6.5;7.3],{'N';'SE';'NW'}); TT.Properties.VariableNames = {'Temperature','WindSpeed','WindDirection'}; TT.Properties.VariableContinuity = {'continuous','event','event'}; TT.Properties
ans = TimetableProperties with properties: Description: '' UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} VariableDescriptions: {} VariableUnits: {} VariableContinuity: [continuous event event] RowTimes: [3x1 datetime] StartTime: 18-Dec-2015 SampleRate: NaN TimeStep: 1d Events: [] CustomProperties: No custom properties are set. Use addprop and rmprop to modify CustomProperties.
사용자 지정 메타데이터
CustomProperties
— 타임테이블과 타임테이블 변수의 사용자 지정 메타데이터
CustomProperties
객체
타임테이블과 타임테이블 변수의 사용자 지정 메타데이터로, CustomProperties
객체로 지정됩니다.
CustomProperties
객체는 타임테이블에 추가할 수 있는 사용자 지정 메타데이터의 컨테이너입니다. 기본적으로 CustomProperties
는 0개 속성을 가집니다. CustomProperties
에 추가하는 각 속성은 테이블 메타데이터 또는 변수 메타데이터를 포함할 수 있습니다. 속성이 변수 메타데이터를 포함하는 경우, 그 값은 배열이 되어야 하고 배열의 요소 개수는 타임테이블 변수의 개수와 같아야 합니다.
참고: 사용자 지정 메타데이터에 대한 속성만 addprop
와 rmprop
를 사용하여 추가 또는 제거할 수 있습니다.
객체의 속성은 추가하거나 제거할 수 없습니다.timetableName
.Properties
예제
날씨 데이터를 포함하는 타임테이블을 생성합니다.
TT = timetable(datetime({'2015-12-18';'2015-12-20';'2015-12-21'}), ... [37.3;39.1;42.3],[13.4;6.5;7.3],{'N';'SE';'NW'}); TT.Properties.VariableNames = {'Temperature','WindSpeed','WindDirection'}
TT=3×3 timetable
Time Temperature WindSpeed WindDirection
___________ ___________ _________ _____________
18-Dec-2015 37.3 13.4 {'N' }
20-Dec-2015 39.1 6.5 {'SE'}
21-Dec-2015 42.3 7.3 {'NW'}
이러한 데이터를 측정한 계측기와 출력 파일의 이름을 설명하려면 addprop
함수를 사용하여 사용자 지정 메타데이터를 추가하십시오. Instruments
속성은 TT
의 변수에 적용되는 변수 메타데이터를 가집니다. OutputFile
속성은 테이블 메타데이터를 가집니다.
TT = addprop(TT,{'Instruments','OutputFile'},{'variable','table'}); TT.Properties
ans = TimetableProperties with properties: Description: '' UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowTimes: [3x1 datetime] StartTime: 18-Dec-2015 SampleRate: NaN TimeStep: NaN Events: [] Custom Properties (access using t.Properties.CustomProperties.<name>): OutputFile: [] Instruments: []
점 구문을 사용하여 사용자 지정 메타데이터에 값을 할당합니다. 사용자 지정 메타데이터에 텍스트 값으로 구성된 배열을 할당할 때는 문자형 벡터로 구성된 셀형 배열이 아닌 string형 배열을 사용하는 것이 가장 좋습니다. CustomProperties
에 문자형 벡터로 구성된 셀형 배열인 속성이 있는 경우, 나중에 텍스트가 아닌 값을 셀형 배열의 요소로 할당하지 못하도록 하는 방법은 존재하지 않습니다.
TT.Properties.CustomProperties.Instruments = ["thermometer","anemometer","wind vane"]; TT.Properties.CustomProperties.OutputFile = 'weatherReadings.csv'; TT.Properties
ans = TimetableProperties with properties: Description: '' UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowTimes: [3x1 datetime] StartTime: 18-Dec-2015 SampleRate: NaN TimeStep: NaN Events: [] Custom Properties (access using t.Properties.CustomProperties.<name>): OutputFile: 'weatherReadings.csv' Instruments: ["thermometer" "anemometer" "wind vane"]
TT
에서 OutputFile
속성을 제거합니다.
TT = rmprop(TT,'OutputFile');
TT.Properties
ans = TimetableProperties with properties: Description: '' UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowTimes: [3x1 datetime] StartTime: 18-Dec-2015 SampleRate: NaN TimeStep: NaN Events: [] Custom Properties (access using t.Properties.CustomProperties.<name>): Instruments: ["thermometer" "anemometer" "wind vane"]
예제
타임테이블에서 관련 데이터 변수를 저장하고 동기화하기
서로 다른 시간에 측정한 기상 조건 데이터를 타임테이블에 저장합니다. 타임테이블에서는 저장 기능 외에도 지정하는 시간으로 데이터를 동기화하는 함수도 제공합니다. 또한 타임테이블에 주석을 지정하여 작업과 타임테이블 변수를 설명할 수도 있습니다.
작업 공간 변수에서 타임테이블을 생성합니다. MeasurementTime
의 값이 타임테이블의 행 시간값이 됩니다. 다른 입력 인수는 모두 타임테이블 변수가 됩니다. 이 구문을 사용할 때는 행 시간값 벡터와 TT
변수의 이름을 입력 인수의 이름으로 사용합니다.
MeasurementTime = datetime({'2015-12-18 08:03:05';'2015-12-18 10:03:17';'2015-12-18 12:03:13'}); Temp = [37.3;39.1;42.3]; Pressure = [30.1;30.03;29.9]; WindSpeed = [13.4;6.5;7.3]; TT = timetable(MeasurementTime,Temp,Pressure,WindSpeed)
TT=3×3 timetable
MeasurementTime Temp Pressure WindSpeed
____________________ ____ ________ _________
18-Dec-2015 08:03:05 37.3 30.1 13.4
18-Dec-2015 10:03:17 39.1 30.03 6.5
18-Dec-2015 12:03:13 42.3 29.9 7.3
기상 데이터를 시간 스텝이 1시간인 규칙적인 시간으로 동기화합니다. 선형 보간을 사용하여 데이터를 새 시간으로 조정합니다.
TT2 = retime(TT,'hourly','linear')
TT2=6×3 timetable
MeasurementTime Temp Pressure WindSpeed
____________________ ______ ________ _________
18-Dec-2015 08:00:00 37.254 30.102 13.577
18-Dec-2015 09:00:00 38.152 30.067 10.133
18-Dec-2015 10:00:00 39.051 30.032 6.6885
18-Dec-2015 11:00:00 40.613 29.969 6.8783
18-Dec-2015 12:00:00 42.214 29.903 7.2785
18-Dec-2015 13:00:00 43.815 29.838 7.6788
출력값의 행 시간값이 측정된 시간이 아니기 때문에 행 시간값으로 구성된 벡터의 이름을 바꿉니다. 이 벡터는 타임테이블의 첫 번째 차원 이름이기도 합니다.
TT2.Properties.DimensionNames{1} = 'InterpolatedTimes'
TT2=6×3 timetable
InterpolatedTimes Temp Pressure WindSpeed
____________________ ______ ________ _________
18-Dec-2015 08:00:00 37.254 30.102 13.577
18-Dec-2015 09:00:00 38.152 30.067 10.133
18-Dec-2015 10:00:00 39.051 30.032 6.6885
18-Dec-2015 11:00:00 40.613 29.969 6.8783
18-Dec-2015 12:00:00 42.214 29.903 7.2785
18-Dec-2015 13:00:00 43.815 29.838 7.6788
설명으로 TT2
에 주석을 지정합니다. TT2.Properties
를 통해 액세스한 메타데이터를 사용하여 TT2
와 해당 변수에 주석을 지정할 수 있습니다.
TT2.Properties.Description = 'Weather data, interpolated to regular hourly times';
TT2.Properties
ans = TimetableProperties with properties: Description: 'Weather data, interpolated to regular hourly times' UserData: [] DimensionNames: {'InterpolatedTimes' 'Variables'} VariableNames: {'Temp' 'Pressure' 'WindSpeed'} VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowTimes: [6x1 datetime] StartTime: 18-Dec-2015 08:00:00 SampleRate: 2.7778e-04 TimeStep: 01:00:00 Events: [] CustomProperties: No custom properties are set. Use addprop and rmprop to modify CustomProperties.
행 시간값과 변수 데이터에 액세스하기
점 구문을 사용하여 타임테이블의 행 시간값에 액세스할 수 있습니다. 또한 점 구문을 사용하여 개별 변수에 액세스하거나 타임테이블의 두 번째 차원 이름을 사용하여 타임테이블의 모든 데이터에 액세스할 수 있습니다.
MAT 파일 outdoors
에서 타임테이블을 불러옵니다. 처음 세 개의 행을 표시합니다.
load outdoors
outdoors(1:3,:)
ans=3×3 timetable
Time Humidity TemperatureF PressureHg
___________________ ________ ____________ __________
2015-11-15 00:00:24 49 51.3 29.61
2015-11-15 01:30:24 48.9 51.5 29.61
2015-11-15 03:00:24 48.9 51.5 29.61
행 시간값 벡터의 이름을 사용하여 행 시간값에 액세스합니다. 이 이름은 타임테이블의 첫 번째 차원 이름이기도 합니다. outdoors
는 행 시간값을 datetime
형 벡터로 저장합니다. 처음 3개 시간값을 표시합니다.
outdoors.Time(1:3)
ans = 3x1 datetime
2015-11-15 00:00:24
2015-11-15 01:30:24
2015-11-15 03:00:24
변수 이름을 사용하여 기온을 숫자형 벡터로 액세스합니다.
outdoors.TemperatureF(1:3)
ans = 3×1
51.3000
51.5000
51.5000
구문 outdoors.Variables
를 사용하여 모든 타임테이블 데이터를 행렬로 액세스합니다. 이 구문은 타임테이블의 두 번째 차원 이름을 사용하기 때문에, 중괄호 인덱싱 outdoors{:,:}
을 사용하여 모든 내용에 액세스하는 것과 같습니다. 하지만 행 시간값으로 구성된 벡터는 변수가 아니라 타임테이블 메타데이터이기 때문에 행렬에는 행 시간값이 포함되지 않습니다. 타임테이블 데이터를 하나의 행렬로 결합할 수 없는 경우, 오류 메시지가 나타납니다.
outdoors.Variables
ans = 51×3
49.0000 51.3000 29.6100
48.9000 51.5000 29.6100
48.9000 51.5000 29.6100
48.8000 51.5000 29.6100
48.7000 51.5000 29.6000
48.8000 51.5000 29.6000
49.0000 51.5000 29.6000
49.1000 51.3000 29.6000
49.1000 51.3000 29.6100
49.1000 51.5000 29.6100
⋮
outdoors
의 두 번째 차원 이름을 바꿉니다. 이름을 변경한 경우, 새 이름을 사용하여 데이터에 액세스할 수 있습니다.
outdoors.Properties.DimensionNames{2} = 'Data';
outdoors.Data
ans = 51×3
49.0000 51.3000 29.6100
48.9000 51.5000 29.6100
48.9000 51.5000 29.6100
48.8000 51.5000 29.6100
48.7000 51.5000 29.6000
48.8000 51.5000 29.6000
49.0000 51.5000 29.6000
49.1000 51.3000 29.6000
49.1000 51.3000 29.6100
49.1000 51.5000 29.6100
⋮
시간 벡터 지정하기
'RowTimes'
이름-값 쌍의 인수를 사용하여 타임테이블을 생성합니다. TT
의 행 시간값 벡터 이름은 MeasurementTime
이 아니라 Time
입니다. 이 구문을 사용하는 경우 행 시간값 벡터 이름은 항상 Time
입니다.
MeasurementTime = datetime({'2015-12-18 08:03:05';'2015-12-18 10:03:17';'2015-12-18 12:03:13'}); Temp = [37.3;39.1;42.3]; Pressure = [29.4;29.6;30.0]; Precip = [0.1;0.9;0.0]; StormDuration = [hours(1);hours(2);NaN]; TT = timetable(Temp,Pressure,Precip,StormDuration,'RowTimes',MeasurementTime)
TT=3×4 timetable
Time Temp Pressure Precip StormDuration
____________________ ____ ________ ______ _____________
18-Dec-2015 08:03:05 37.3 29.4 0.1 1 hr
18-Dec-2015 10:03:17 39.1 29.6 0.9 2 hr
18-Dec-2015 12:03:13 42.3 30 0 NaN hr
디폴트 이름
타임테이블을 생성합니다. 작업 공간 변수가 아닌 입력 인수가 있으면 timetable
함수는 이에 대응하는 행 시간값 벡터와 타임테이블 변수에 디폴트 이름을 할당합니다. 예를 들어, 열 벡터로 만들기 위해 입력 인수를 전치하는 경우 이 입력 인수는 작업 공간 변수가 아닙니다. 행 시간값으로 구성된 벡터의 디폴트 이름은 Time
이고, N
번째 타임테이블 변수의 디폴트 이름은 VarN
입니다.
T = hours(1:3); Temp = [37.3;39.1;42.3]; P = [29.4 29.6 30]; TT = timetable(T',Temp,P')
TT=3×2 timetable
Time Temp Var2
____ ____ ____
1 hr 37.3 29.4
2 hr 39.1 29.6
3 hr 42.3 30
샘플 레이트 지정하기
100Hz의 샘플 레이트를 사용하여 규칙적인 타임테이블을 생성합니다.
Intensity = [100;98.7;95.2;101.4;99.1];
TT = timetable(Intensity,'SampleRate',100)
TT=5×1 timetable
Time Intensity
________ _________
0 sec 100
0.01 sec 98.7
0.02 sec 95.2
0.03 sec 101.4
0.04 sec 99.1
첫 번째 행 시간값을 30초로 하여 타임테이블을 생성합니다. 시작 시간을 지정하려면 'StartTime'
이름-값 쌍의 인수를 사용하십시오.
TT = timetable(Intensity,'SampleRate',100,'StartTime',seconds(30))
TT=5×1 timetable
Time Intensity
_________ _________
30 sec 100
30.01 sec 98.7
30.02 sec 95.2
30.03 sec 101.4
30.04 sec 99.1
시간 스텝 지정하기
0.01초의 시간 스텝을 사용하여 규칙적인 타임테이블을 생성합니다. 시간 스텝은 duration
형 값 또는 calendarDuration
형 값으로 지정해야 합니다.
Intensity = [100;98.7;95.2;101.4;99.1];
TT = timetable(Intensity,'TimeStep',seconds(0.01))
TT=5×1 timetable
Time Intensity
________ _________
0 sec 100
0.01 sec 98.7
0.02 sec 95.2
0.03 sec 101.4
0.04 sec 99.1
첫 번째 행 시간값을 30초로 하여 타임테이블을 생성합니다. 시작 시간을 지정하려면 'StartTime'
이름-값 쌍의 인수를 사용하십시오.
TT = timetable(Intensity,'TimeStep',seconds(0.01),'StartTime',seconds(30))
TT=5×1 timetable
Time Intensity
_________ _________
30 sec 100
30.01 sec 98.7
30.02 sec 95.2
30.03 sec 101.4
30.04 sec 99.1
크기와 변수 유형 지정하기
테이블 크기와 변수의 데이터형을 지정하여 테이블을 사전할당합니다. timetable
함수는 지정하는 데이터형에 적합한 디폴트 값으로 변수를 채웁니다. 또한 변수에 디폴트 이름을 지정합니다.
T = [datetime('now') datetime(2017,11,1:3)]; sz = [4 3]; varTypes = {'double','double','string'}; TT = timetable('Size',sz,'VariableTypes',varTypes,'RowTimes',T)
TT=4×3 timetable
Time Var1 Var2 Var3
____________________ ____ ____ _________
07-Mar-2024 15:44:58 0 0 <missing>
01-Nov-2017 00:00:00 0 0 <missing>
02-Nov-2017 00:00:00 0 0 <missing>
03-Nov-2017 00:00:00 0 0 <missing>
변수의 이름을 지정하려면 'VariableNames'
이름-값 쌍의 인수를 사용하십시오.
varNames = {'Temperature','WindSpeed','Station'}; TT = timetable('Size',sz,'VariableTypes',varTypes,'RowTimes',T,'VariableNames',varNames)
TT=4×3 timetable
Time Temperature WindSpeed Station
____________________ ___________ _________ _________
07-Mar-2024 15:44:58 0 0 <missing>
01-Nov-2017 00:00:00 0 0 <missing>
02-Nov-2017 00:00:00 0 0 <missing>
03-Nov-2017 00:00:00 0 0 <missing>
TT
에 데이터 행을 추가합니다. 사전할당 기법은 코드가 한 번에 1개 또는 적은 수의 데이터 행을 추가할 때 유용할 수 있습니다. 행을 추가할 때마다 일일이 타임테이블을 늘리는 대신 데이터를 추가할 수 있는 공간이 이미 있는 테이블 변수를 채울 수 있습니다. 한 줄의 데이터 값을 셀형 배열에 담아 타임테이블의 한 행에 할당할 수 있습니다.
시간값을 사용하여 행에 첨자를 추가하고 한 줄의 데이터 값을 할당합니다. 숫자를 행과 변수에 대한 첨자로 사용할 수도 있습니다. 하지만 시간을 타임테이블에 대한 첨자로 사용하는 것이 유용한 방법입니다.
TT(datetime(2017,11,2),:) = {48.2,13.33,"S1"}
TT=4×3 timetable
Time Temperature WindSpeed Station
____________________ ___________ _________ _________
07-Mar-2024 15:44:58 0 0 <missing>
01-Nov-2017 00:00:00 0 0 <missing>
02-Nov-2017 00:00:00 48.2 13.33 "S1"
03-Nov-2017 00:00:00 0 0 <missing>
한 줄의 데이터 값을 셀형 배열에 담을 수 있습니다. 셀형 배열에서 행을 할당하면 그 결과, 셀형 배열이 타임테이블 행으로 변환됩니다.
샘플 레이트를 사용하여 타임테이블 사전할당하기
샘플 레이트를 1000Hz로 지정하고 타임테이블을 사전할당합니다. 시작 시간을 지정할 수도 있습니다.
sz = [4 3]; varTypes = {'uint64','double','duration'}; TT = timetable('Size',sz,'VariableTypes',varTypes,'SampleRate',1000,'StartTime',seconds(15))
TT=4×3 timetable
Time Var1 Var2 Var3
__________ ____ ____ ________
15 sec 0 0 00:00:00
15.001 sec 0 0 00:00:00
15.002 sec 0 0 00:00:00
15.003 sec 0 0 00:00:00
세 번째 행의 시간값을 지정하여 해당 요소를 참조하고 데이터를 추가합니다.
TT(seconds(15.002),:) = {50,1.37,minutes(76)}
TT=4×3 timetable
Time Var1 Var2 Var3
__________ ____ ____ ________
15 sec 0 0 00:00:00
15.001 sec 0 0 00:00:00
15.002 sec 50 1.37 01:16:00
15.003 sec 0 0 00:00:00
시간 스텝을 사용하여 타임테이블 사전할당하기
시간 스텝과 변수 이름을 지정합니다.
sz = [3 2]; varTypes = {'double','double'}; TT = timetable('Size',sz,'VariableTypes',varTypes,'TimeStep',seconds(0.1),'VariableNames',{'Intensity','Distance'})
TT=3×2 timetable
Time Intensity Distance
_______ _________ ________
0 sec 0 0
0.1 sec 0 0
0.2 sec 0 0
두 번째 행의 시간값을 지정하여 해당 요소를 참조하고 데이터를 추가합니다.
TT(seconds(0.1),:) = {93.6,11.27}
TT=3×2 timetable
Time Intensity Distance
_______ _________ ________
0 sec 0 0
0.1 sec 93.6 11.27
0.2 sec 0 0
타임테이블을 생성하고 변수 이름 지정하기
타임테이블을 생성하고 타임테이블 변수의 이름을 지정합니다. 행 시간값으로 구성된 벡터는 duration
형 벡터(단위: 초)입니다.
Time = seconds(1:5)'; TT = timetable(Time,[98;97.5;97.9;98.1;97.9],[120;111;119;117;116],... 'VariableNames',{'Reading1','Reading2'})
TT=5×2 timetable
Time Reading1 Reading2
_____ ________ ________
1 sec 98 120
2 sec 97.5 111
3 sec 97.9 119
4 sec 98.1 117
5 sec 97.9 116
R2019b부터는 유효한 MATLAB® 식별자가 아닌 타임테이블 변수 이름을 지정할 수 있습니다. 이러한 변수 이름은 공백과 비ASCII 문자를 포함할 수 있으며 임의의 문자를 선행 문자로 가질 수 있습니다.
예를 들어, 날짜를 측정값이 포함된 타임테이블 변수의 이름으로 사용할 수 있습니다.
TT = timetable(Time,[98;97.5;97.9;98.1;97.9],[120;111;119;117;116],... 'VariableNames',{'29-May-2019','30-May-2019'})
TT=5×2 timetable
Time 29-May-2019 30-May-2019
_____ ___________ ___________
1 sec 98 120
2 sec 97.5 111
3 sec 97.9 119
4 sec 98.1 117
5 sec 97.9 116
유효한 식별자가 아닌 이름에 대해 점 표기법을 사용하려면 괄호와 따옴표를 포함시켜야 합니다.
TT.('29-May-2019')
ans = 5×1
98.0000
97.5000
97.9000
98.1000
97.9000
제한 사항
다음 입력 이름에는 작은따옴표를 사용하십시오.
'DimensionNames'
R2021a 이상'RowTimes'
'SampleRate'
'Size'
'StartTime'
'TimeStep'
'VariableTypes'
'VariableNames'
가변 입력값과 혼동되지 않도록 이 이름들에는 큰따옴표로 묶인 string형 스칼라(예:
"RowTimes"
)를 사용하지 마십시오.
팁
타임테이블을 수락하거나 반환하는 함수 목록은 타임테이블 항목을 참조하십시오.
행 시간값 사이의 규칙적인 시간 스텝을 지정하는 구문을 사용하여
timetable
함수를 호출했는데도timetable
함수가 불규칙적인 타임테이블을 반환하는 경우가 있습니다. 이러한 결과는 달력 시간 단위를 사용하여 시간 스텝을 지정할 때 불규칙적인 스텝을 발생시키는 행 시간값이 포함되어 있는 경우에 발생합니다. 예를 들어, 2019년 1월 31일부터 시작하여 달력상의 월수 1개의 시간 스텝으로 타임테이블을 만든 경우 이 타임테이블은 월에 대해 불규칙적입니다.stime = datetime(2019,1,31); tstep = calmonths(1); TT = timetable('Size',[3 1],'VariableTypes',{'double'},... 'TimeStep',tstep,'StartTime',stime)
TT = 3×1 timetable Time Var1 ___________ ____ 31-Jan-2019 0 28-Feb-2019 0 31-Mar-2019 0
DST(일광 절약 시간제)의 전환이나 윤초인
datetime
형 값으로 인해 불규칙성이 발생하는 경우도 있습니다. 다음 표에서는 예기치 않게 불규칙적인 결과를 생성할 수 있는 날짜, 시간 및 시간 스텝을 보여줍니다.행 시간값
시간 스텝
월의 29일, 30일 또는 31일로 지정된 시작 시간.
달력상의 월수 또는 사분기수.
2월 29일로 지정된 시작 시간.
달력상의 연수.
DST에서 표준 시간으로 전환되는 날 오전 1시와 오전 2시 사이의 모든 datetime
형 값(이러한 값이 DST가 적용되는 표준 시간대를 갖는 경우).달력상의 일수 또는 월수. 윤초인 모든
datetime
형 값(이러한 값의 표준 시간대가UTCLeapSeconds
표준 시간대인 경우). 윤초 목록은leapseconds
를 참조하십시오.임의의 달력 단위(일수, 주수, 월수, 사분기수 또는 연수)로 지정된 시간 스텝.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
사용법 관련 참고 및 제한 사항:
'SampleRate'
,'TimeStep'
및'StartTime'
이름-값 쌍은 지원되지 않습니다.tall형 타임테이블에는
Events
속성이 지원되지 않습니다.생성. tall형 타임테이블을 생성하는 방법에는 여러 가지가 있습니다.
데이터저장소의 읽기 작업이 타임테이블을 반환하도록 기본 데이터저장소의
OutputType
속성을'timetable'
로 지정합니다. 그런 다음,tall(ds)
로 이 데이터저장소를 tall형 배열로 변환합니다.디폴트 동작은 데이터의 첫 번째
datetime
형 변수 또는duration
형 변수를 행 시간값에 사용하는 것입니다. 행 시간값을 직접 지정하려면RowTimes
데이터저장소 속성을 사용하여 행 시간값으로 구성된 talldatetime
형 벡터 또는 tallduration
형 벡터를 지정합니다.table2timetable
을 사용하여 기존 tall형 테이블을 변환합니다.array2timetable
을 사용하여 기존 tall형 배열을 변환합니다.timetable
생성자를 사용하여 tall형 테이블의 변수에서 tall형 타임테이블을 수동으로 생성합니다.ds = tabularTextDatastore('data/folder/path.csv'); tt = tall(ds); TT = timetable(rowTimes, tt.Var1, tt.Var2, ...)
구문
TT = tall(tt)
를 사용하여 메모리 내 타임테이블을 tall형 타임테이블로 변환합니다.
인덱싱.
timerange
,withtol
,vartype
함수는 tall형 타임테이블의 요소에 대한 참조를 지원합니다.지원되는 함수. 각 함수 도움말 페이지의 하단에 있는 확장 기능 섹션은 함수가 tall형 배열을 지원하는지 여부를 나타내며, tall형 배열을 지원하는 경우 tall형 타임테이블과 함께 함수를 사용할 때 제한이 있는지 여부를 나타냅니다.
자세한 내용은 tall형 배열 항목을 참조하십시오.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
R2020a부터는 코드 생성을 위한 MATLAB® 코드에 타임테이블을 사용할 수 있습니다. 자세한 내용은 Code Generation for Timetables (MATLAB Coder) 항목과 Timetable Limitations for Code Generation (MATLAB Coder) 항목을 참조하십시오.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
사용법 관련 참고 및 제한 사항:
다음과 같은 구문만 지원됩니다.
TT = timetable(
rowTimes
,var1,...,varN
)TT = timetable(
var1,...,varN
,'RowTimes',rowTimes
)TT = timetable(___,
'VariableNames'
,{'name1',...,'nameN'}
)TT = timetable(___,
'DimensionNames'
,{'dim1','dim2'}
)모든 데이터 변수는 분산되어 있어야 합니다.
'SampleRate'
,'TimeStep'
및'StartTime'
이름-값 인수는 지원되지 않습니다.Events
속성은 지원되지 않습니다.
자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2016b에 개발됨R2023a: 데이터를 추출하지 않고 테이블 및 타임테이블에 대해 직접 계산 수행
이제 데이터를 추출하지 않고 테이블 및 타임테이블에 대해 직접 계산을 수행할 수 있습니다. 테이블 및 타임테이블의 모든 변수는 계산을 지원하는 데이터형을 가져야 합니다. 한쪽 피연산자가 테이블 또는 타임테이블이고 다른 쪽 피연산자가 숫자형 배열이거나 논리형 배열일 때도 연산을 수행할 수 있습니다. 이전에는 모든 계산 시 테이블 및 타임테이블의 요소를 참조하는 방법으로 해당 테이블과 타임테이블에서 데이터를 추출해야 했습니다.
자세한 내용은 테이블 및 타임테이블에 대해 직접 계산 항목과 Rules for Table and Timetable Mathematics 항목을 참조하십시오.
R2023a: 연결된 이벤트 테이블을 사용하여 타임테이블에서 이벤트를 찾아 레이블 지정
타임테이블에서 이벤트를 찾아 레이블을 지정하려면 타임테이블에 이벤트 테이블을 연결하십시오. 이벤트 테이블은 이벤트의 타임테이블입니다. 이벤트는 이벤트 시간(발생 시점), 이벤트 길이 또는 이벤트 종료 시간(발생 기간), 이벤트 레이블(발생한 항목) 및 이벤트에 대한 추가 정보로 구성됩니다. 이벤트 테이블은 타임테이블에 연결되도록 설계되었습니다. 이벤트 테이블을 타임테이블에 연결하면, 타임테이블에서 이벤트 중에 발생한 행을 찾거나 그에 레이블을 지정할 수 있습니다.
MATLAB은 입력 데이터에서 이벤트 테이블을 만들고 이벤트 시간을 기준으로 타임테이블 행을 필터링하며 이벤트를 타임테이블에 동기화할 수 있는 다음 함수를 제공합니다.
R2023a: 시간값을 첨자로 사용하거나 withtol
첨자를 사용할 때의 성능이 개선됨
시간값을 첨자로 사용하거나 withtol
첨자를 사용할 때 timetable
첨자 참조의 속도가 R2022b에 비해 R2023a에서 크게 빨라졌습니다.
예를 들어, 100개의
datetime
형 값으로 구성된 벡터를 사용하여 107개의 행을 가진 타임테이블에 첨자를 추가할 때 R2023a의 성능이 R2020b에서보다 약 114배 빠릅니다.function timingTest() rng default % 10^7 rows N = 10000000; rowtimes = datetime(2023,1,1,0,0,0:N-1); rowtimes.Format = rowtimes.Format + ".SSS"; tt = timetable(rand(N,1),RowTimes=rowtimes); % 100 values chosen in steps of 10 n = 1000; t = datetime(2023,1,1,0,0,0:10:n-1); tic tt2 = tt(t,:); toc end
대략적인 실행 시간은 다음과 같습니다.
R2022b: 9.10초
R2023a: 0.08초
마찬가지로, 100개의
duration
형 값으로 구성된 벡터를 사용하여 107개의 행을 가진 타임테이블에 첨자를 추가할 때 R2023a의 성능이 R2020b에서보다 약 14배 빠릅니다.function timingTest() rng default % 10^7 rows N = 10000000; rowtimes = seconds(0:N-1); tt = timetable(rand(N,1),RowTimes=rowtimes); % 100 values chosen in steps of 10 n = 1000; t = seconds(0:10:n-1); tic tt2 = tt(t,:); toc end
대략적인 실행 시간은 다음과 같습니다.
R2022b: 1.29초
R2023a: 0.09초
107개의 행을 가진 타임테이블에
withtol
첨자를 사용할 경우 R2023a의 성능이 R2020b에서보다 약 44배 빠릅니다.function timingTest() rng default % 10^7 rows N = 10000000; rowtimes = seconds(0:N-1); tt = timetable(rand(N,1),RowTimes=rowtimes); % 100 values chosen in steps of 10 n = 1000; t = seconds(0:10:n-1); tt.Time = tt.Time + .1*seconds(rand(N,1)); wt = withtol(t,seconds(.1)); tic tt2 = tt(wt,:); toc end
대략적인 실행 시간은 다음과 같습니다.
R2022b: 3.92초
R2023a: 0.09초
코드 실행 시간은 Windows® 10, AMD® EPYC 74F3 24-Core Processor @ 3.19GHz 테스트 시스템에서 각 버전별로 timingTest
함수를 호출하여 측정했습니다.
R2021a: 'SamplingRate'
는 제거될 예정임
'SamplingRate'
이름-값 인수는 향후 릴리스에서 제거될 예정입니다. 'SampleRate'
를 대신 사용하십시오. 대응하는 timetable형의 속성도 SampleRate
라는 이름을 갖습니다.
이전 버전과의 호환성을 위해 'SamplingRate'
를 이름-값 인수의 이름으로 지정하는 것은 여전히 가능합니다. 단, 이때 이 값은 SampleRate
속성에 할당됩니다.
R2019b: 변수 이름에 선행 공백과 후행 공백 문자가 포함될 수 있음
선행 또는 후행 공백 문자가 있는 테이블 및 타임테이블 변수 이름은 수정되지 않습니다.
이전 릴리스에서는 'VariableNames'
이름-값 쌍의 인수를 사용하여 변수 이름을 지정하거나 VariableNames
속성에 변수 이름을 할당한 경우 변수 이름에서 선행 및 후행 공백 문자가 삭제되었습니다.
이러한 문자를 직접 제거하려면, 먼저 이름에 strtrim
함수를 사용한 다음 이 이름을 테이블 또는 타임테이블에 변수 이름으로 할당하십시오.
참고 항목
array2timetable
| table2timetable
| summary
| uitable
| timetable2table
| table
| addprop
| rmprop
| timeseries
| timeseries2timetable
| extractTimetable
(Simulink)
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)