datenumを使用して、日付をシリアル日付番号に変換できます (1 は 01/01/0000、2 は 02/01/0000、367 は 01/01/0001 など)。
strDate='27112011';
numDate = datenum(strDate,'ddmmyyyy')
平均値や中央値を取得するなど、これらの日付番号に対して任意の算術演算を実行できます。
mean(numDates)
median(numDates)
ここでの唯一の問題は、日付が文字列型ではなく数値であることです。幸い、datenum は数値入力も受け付けますが、日、月、年をベクトルで区切って指定する必要があります。
numDate = datenum([year month day])
または、複数のタイムスタンプがある場合はマトリックスの行として。
したがって、指定したサンプルデータの場合:
dates=[32381 41081 40581 32381 32981 41081 40981 40581];
years = mod(dates,100);
dates = (dates-years)./100;
days = mod(dates,100);
months = (dates-days)./100;
years = years + 1900; % set the years to the 20th century
numDates = datenum([years(:) months(:) days(:)]);
fprintf('The mean date is %s\n', datestr(mean(numDates)));
fprintf('The median date is %s\n', datestr(median(numDates)));
この例では、結果の平均値と中央値をdatestrを使用して読み取り可能な日付形式に変換し直しました。これはシリアル日付番号を入力として受け取ります。