exponenta event banner

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