subsref

Преобразованная в нижний индекс ссылка

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]

Представлено до R2006a