У меня есть интересная проблема, которая заключается в том, чтобы взять последнюю day
из матрицы и найти ее last month
день.Например, если сегодняшняя дата - октябрь 10-2011, вы пытаетесь найти в матрице сентябрь 10-2011 или первый день <сентябрь 10-2011.</p>
Матрица имеет несколько идентификаторов, и даты последних торгов могут не совпадать.Векторизованное решение желательно.Спасибо!
mat = [
1000 734507 11 ; 1000 734508 12 ; 1000 734509 13 ;
2001 734507 21 ; 2001 734508 22 ; 2001 734513 23 ; 2001 734516 25 ;
1000 734536 14 ; 1000 734537 15 ; 1000 734538 16 ;
2001 734536 26 ; 2001 734537 27 ; 2001 734544 28 ; 2001 734545 29;2001 734546 30
];
% datestr(mat(:,2))
[~,m,~] = unique(mat(:,1), 'rows', 'last') ;
lastDay = mat(m,;) ;
Пытался использовать addtodate
, чтобы получить здесь дату последнего месяца, но это не удалось (более 1 строки)
Как только я получу последние даты для каждого идентификатора,Мне нужно получить точный_день_месяца.После этого мне нужно получить данные об этом дне ИЛИ ближайшем к нему дне (должно быть < exact_day_lastmonth
).
Ответ:
current_lastdays = [1000 734538 16 ; 2001 734546 30] ; % 4-Feb-2011, 12-Feb-2011
matching_lastmon = [1000 734507 11 ; 2001 734513 23] ; % 4-Jan-2011, 10-Jan-2011