subsref

Подписанная ссылка

subsref не рекомендуется. Использовать timetable вместо этого. Для получения дополнительной информации смотрите Преобразование финтов финансовых временных рядов в Timetables.

Синтаксис

subref

Описание

subsref реализует индексацию для объекта финансовых временных рядов. Целочисленная индексация или дата (и время) вектору символов индексация разрешена. Серийные номера дат не могут использоваться в качестве индексов.

Чтобы использовать индексацию вектора символов даты, заключайте векторы (векторы) символов даты в пару одинарных кавычек ''.

Вы можете использовать целочисленную индексацию для объекта, как в любом другом MATLAB® матрица. Он возвращает соответствующую запись (is) из объекта.

Кроме того, 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