day
行列から最後のものを取り、その日を見つけるという興味深い問題がありlast month
ます。たとえば、今日の日付が 2011 年 10 月 10 日である場合、2011 年 9 月 10 日またはマトリックスで 2011 年 9 月 10 日より前の最初の日を検索しようとします。
マトリックスには複数の ID があり、最終取引日は同じではない場合があります。ベクトル化されたソリューションが必要です。ありがとう!
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,;) ;
ここで last-month-date を取得するために使用しようとしaddtodate
ましたが、失敗しました (1 行以上)
各 ID の最終日を取得したら、exact_day_lastmonth を取得する必要があります。この後、この日またはそれに最も近い日 (のはずです< 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