Назначение содержимого
subsasgn не рекомендуется. Использовать timetable вместо этого. Дополнительные сведения см. в разделе Преобразование объектов финансового временного ряда в расписания.
subasgn
subasgn присваивает содержимое компоненту в рамках объекта финансового временного ряда. subasgn поддерживает целочисленную индексацию или индексацию вектора символов даты в объект временного ряда со значениями, назначенными назначенным компонентам. Серийные номера дат не могут использоваться в качестве индексов. Чтобы использовать индексирование вектора символов даты, заключите вектор (векторы) символов даты в пару одиночных кавычек ' '.
Для объекта можно использовать целочисленное индексирование, как в любой другой матрице MATLAB ®. Он возвращает соответствующую запись (записи) из объекта.
Необходимо указать компонент, которому требуется присвоить значения. Назначенное значение должно быть скалярным или столбчатым вектором.
Данный временной ряд myfts с именем серии данных по умолчанию series1,
myfts.series1('07/01/98::07/03/98') = [1 2 3]';
присваивает значения 1, 2, и 3 соответствует первым трем дням июля 1998 года.
myfts('07/01/98::07/05/98')Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/subsref (line 106)
ans =
desc: Data Assignment
freq: Daily (1)
'dates: (5)' 'series1: (5)'
'01-Jul-1998' [ 1]
'02-Jul-1998' [ 2]
'03-Jul-1998' [ 3]
'04-Jul-1998' [ 4561.2]
'05-Jul-1998' [ 5612.3]
Если объект финансового временного ряда содержит спецификацию времени суток, можно присвоить данные определенному времени в определенный день. Например, создайте объект финансового временного ряда с именем timeday содержит как даты, так и время:
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]); timeday = fints(dates_times,(1:6)',{'Data1'},1,'My first 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)
timeday =
desc: My first 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]
Используйте целочисленное индексирование для назначения значения 999 первому элементу объекта.
timeday(1) = 999
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/subsasgn (line 118)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/display (line 66)
timeday =
desc: My first FINTS
freq: Daily (1)
'dates: (6)' 'times: (6)' 'Data1: (6)'
'01-Jan-2001' '11:00' [ 999]
' " ' '12:00' [ 2]
'02-Jan-2001' '11:00' [ 3]
' " ' '12:00' [ 4]
'03-Jan-2001' '11:00' [ 5]
' " ' '12:00' [ 6]
Для присвоения значений с использованием векторов символов даты заключите вектор символов в одинарные кавычки. Если дата имеет несколько раз, назначение только даты и назначение значения приводит к тому, что каждый элемент этой даты принимает назначенное значение. Например, чтобы присвоить значение 0.5 всем временам дня 1 января 2001 года, введите
timedata('01-Jan-2001') = 0.5
Результат:
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/size (line 28)
In help (line 53)
timedata =
desc: My first FINTS
freq: Daily (1)
'dates: (6)' 'times: (6)' 'Data1: (6)'
'01-Jan-2001' '11:00' [ 0.5000]
' " ' '12:00' [ 0.5000]
'02-Jan-2001' '11:00' [ 3]
' " ' '12:00' [ 4]
'03-Jan-2001' '11:00' [ 5]
' " ' '12:00' [ 6]
Для доступа к отдельным компонентам объекта финансового временного ряда используется синтаксис структуры. Например, для присвоения диапазона данных всем элементам данных в серии Data1, вы можете использовать
timedata.Data1 = (0: .1 : .5)'
Warning: FINTS will be removed in a future release. Use TIMETABLE instead.
> In fints/size (line 28)
In help (line 53)
timedata =
desc: My first FINTS
freq: Daily (1)
'dates: (6)' 'times: (6)' 'Data1: (6)'
'01-Jan-2001' '11:00' [ 0]
' " ' '12:00' [ 0.1000]
'02-Jan-2001' '11:00' [ 0.2000]
' " ' '12:00' [ 0.3000]
'03-Jan-2001' '11:00' [ 0.4000]
' " ' '12:00' [ 0.5000]