Преобразованная в нижний индекс ссылка
subsref будет удален в будущем релизе. Используйте timetable вместо этого. Для получения дополнительной информации смотрите, Преобразуют Финансовые маневры Объектов Временных рядов в Расписания.
subref
subsref индексация реализаций для финансового объекта временных рядов. Целочисленная индексация или дата (и время) индексация вектора символов позволены. Последовательные числа даты не могут использоваться в качестве индексов.
Чтобы использовать индексацию вектора символов даты, заключите вектор (векторы) символов даты в пару одинарных кавычек ''.
Можно использовать целочисленную индексацию на объекте как в любой другой матрице MATLAB®. Это возвращает соответствующую запись (записи) в объект.
Кроме того, subsref позволяет вам получить доступ к отдельным компонентам объекта с помощью синтаксиса структуры.
Создайте временные ряды под названием myfts:
myfts = fints((datenum('07/01/98'):datenum('07/01/98')+4)',... [1234.56; 2345.61; 3456.12; 4561.23; 5612.34], [], 'Daily',... 'Data Reference')
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints (line 165)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/display (line 66)
myfts =
desc: Data Reference
freq: Daily (1)
'dates: (5)' 'series1: (5)'
'01-Jul-1998' [ 1.2346e+03]
'02-Jul-1998' [ 2.3456e+03]
'03-Jul-1998' [ 3.4561e+03]
'04-Jul-1998' [ 4.5612e+03]
'05-Jul-1998' [ 5.6123e+03]Извлеките данные в течение одного дня 1 июля 1998:
myfts('07/01/98')Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/subsref (line 106)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/display (line 66)
ans =
desc: Data Reference
freq: Daily (1)
'dates: (1)' 'series1: (1)'
'01-Jul-1998' [ 1.2346e+03]Теперь извлеките данные для области значений дат 1 июля 1998 в течение 5 июля 1998:
myfts('07/01/98::07/03/98')
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/subsref (line 106)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/display (line 66)
ans =
desc: Data Reference
freq: Daily (1)
'dates: (3)' 'series1: (3)'
'01-Jul-1998' [ 1.2346e+03]
'02-Jul-1998' [ 2.3456e+03]
'03-Jul-1998' [ 3.4561e+03]Можно использовать синтаксис структуры MATLAB, чтобы получить доступ к отдельным компонентам финансового объекта временных рядов. Получить поле описания myfts, войти
myfts.desc
в командной строке, которая возвращается
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/subsref (line 106)
ans =
'Data Reference'Так же
myfts.series1
возвращается
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/subsref (line 106)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/display (line 66)
ans =
desc: Data Reference
freq: Daily (1)
'dates: (5)' 'series1: (5)'
'01-Jul-1998' [ 1.2346e+03]
'02-Jul-1998' [ 2.3456e+03]
'03-Jul-1998' [ 3.4561e+03]
'04-Jul-1998' [ 4.5612e+03]
'05-Jul-1998' [ 5.6123e+03]Синтаксис для целочисленной индексации эквивалентен для любой другой матрицы MATLAB. Создайте новый финансовый объект временных рядов, содержащий оба раза:
dates = ['01-Jan-2001';'01-Jan-2001'; '02-Jan-2001'; ... '02-Jan-2001'; '03-Jan-2001';'03-Jan-2001']; times = ['11:00';'12:00';'11:00';'12:00';'11:00';'12:00']; dates_times = cellstr([dates, repmat(' ',size(dates,1),1),... times]); anewfts = fints(dates_times,(1:6)',{'Data1'},1,'Another FinTs')
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints (line 165)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/display (line 66)
anewfts =
desc: Another FinTs
freq: Daily (1)
'dates: (6)' 'times: (6)' 'Data1: (6)'
'01-Jan-2001' '11:00' [ 1]
' " ' '12:00' [ 2]
'02-Jan-2001' '11:00' [ 3]
' " ' '12:00' [ 4]
'03-Jan-2001' '11:00' [ 5]
' " ' '12:00' [ 6]Используйте целочисленную индексацию, чтобы извлечь вторые и третьи элементы данных из объекта.
anewfts(2:3)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/subsref (line 106)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/display (line 66)
ans =
desc: Another FinTs
freq: Daily (1)
'dates: (2)' 'times: (2)' 'Data1: (2)'
'01-Jan-2001' '12:00' [ 2]
'02-Jan-2001' '11:00' [ 3]Для вектора символов даты заключите вектор символов индексации в пару одинарных кавычек.
Если существует одна дата с многократно, индексирование только с датой возвращает все времена для той определенной даты:
anewfts('01-Jan-2001')Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/subsref (line 106)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/display (line 66)
ans =
desc: Another FinTs
freq: Daily (1)
'dates: (2)' 'times: (2)' 'Data1: (2)'
'01-Jan-2001' '11:00' [ 1]
' " ' '12:00' [ 2]
Чтобы задать одну определенную дату и время, индексируйте с той датой и временем:
anewfts('01-Jan-2001 12:00')Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/subsref (line 106)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/display (line 66)
ans =
desc: Another FinTs
freq: Daily (1)
'dates: (1)' 'times: (1)' 'Data1: (1)'
'01-Jan-2001' '12:00' [ 2]Чтобы указать диапазон дат и времен, используйте двойное двоеточие (::оператор:
anewfts('01-Jan-2001 12:00::03-Jan-2001 11:00')Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/subsref (line 106)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/display (line 66)
ans =
desc: Another FinTs
freq: Daily (1)
'dates: (4)' 'times: (4)' 'Data1: (4)'
'01-Jan-2001' '12:00' [ 2]
'02-Jan-2001' '11:00' [ 3]
' " ' '12:00' [ 4]
'03-Jan-2001' '11:00' [ 5]Чтобы запросить все даты, времена и данные, используют :: оператор, не задавая определенной даты или время:
anewfts('::')
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/subsref (line 106)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/display (line 66)
ans =
desc: Another FinTs
freq: Daily (1)
'dates: (6)' 'times: (6)' 'Data1: (6)'
'01-Jan-2001' '11:00' [ 1]
' " ' '12:00' [ 2]
'02-Jan-2001' '11:00' [ 3]
' " ' '12:00' [ 4]
'03-Jan-2001' '11:00' [ 5]
' " ' '12:00' [ 6]