Променете индивидуалните стойности на данни от времеви серии в MATLAB

Тук ставам малко луд, тъй като не успявам да използвам препратката към индекса за моите новосъздадени обекти от времеви серии.

Всичко, което искам да направя, е заявка/връщане/промяна на стойността от определена дата.

т.е. където моята времева поредица "temp" е дневни стойности за температура и искам да променя стойността на 16 януари 2008 г. Моята структура на датата е форматирана като "01-Jan-2008"

Пробвах различни начини, но не успях! :(

temp('16-Jan-2008')= 25; % Info on this page ref [1]
temp(16) = 25; % 16 referring to the element index

Знам, че мога да отида в tstools и да го модифицирам ръчно, но искам да направя много по-нататъшна манипулация на матрицата с времевите серии, но някак си се затруднявам дори с реферирането на индекса! Не могат ли да се променят лесно в командния прозорец?

Благодаря

[1] - http://www.mathworks.co.uk/help/finance/working-with-financial-time-series-objects.html#f13-5213


person dreab    schedule 09.07.2013    source източник
comment
Мисля, че искаш нещо като temp.MySeriesName(16) = 25   -  person Dan    schedule 09.07.2013
comment
Благодаря! Това помогна до известна степен, въпреки че мисля, че има други проблеми, които трябва да реша с моите данни - наздраве за показалеца   -  person dreab    schedule 10.07.2013
comment
@Dan Препоръчвам ви да го публикувате като отговор, така че въпросът да не остане отворен.   -  person Dennis Jaheruddin    schedule 25.09.2013


Отговори (1)


За 2 вектора

време [размер = n на 1] и време [размер = n на 1]

Ако ur timeseries е char вектор (всички редове с еднаква дължина, а не клетка). Можете да конвертирате в matlab time nums като

time_tmp = datenum(time,'dd-mmm-yyyy');

След това можете да промените временен вектор (със същата дължина като времето)

temp(time_tmp == datenum(2008,1,16)) = 25;

в противен случай можете да конвертирате вашите данни в 2 вектора, след което направете по-горе.

person Alex Byasse    schedule 11.11.2013