2

Matlab には、次の形式のデータがあります。

  • "z"、17'256x1 double、回帰の残差を含む (例: -0.0596)
  • 「dates」、17'256x1 セル、回帰の各観測の日付とタイムスタンプ (したがって、残差) を含みます (例: '10/3/2011 9:30:00 PM')。

私がやりたいこと:残差日付スタンプをラベルとしてプロットします。観察は、連続した一連の日からのものではなく (つまり、日の間に観察がないギャップがある可能性があります)、いくつかの日には他の日よりも多くの観察があります。ラベルが多すぎるため、観測ごとに 1 つのラベルを持つことはできません。そのため、日ごとまたは月ごとにグループ化する必要があります。つまり、その日のすべての観測の下に月と日 (例: 10/3) のみを表示するか、その月のすべての観測の下に月 (例: 3) のみを表示します。私が持っているデータを使用して、どうすればそれを行うことができますか?

4

1 に答える 1

3

物事を「グループ化」せずにこれをプロットできるはずです。日付をタイムスタンプに変換する場合:

timestamps = cellfun(@(date)datenum(date), dates);

次に、通常のプロットを実行できます。

plot(timestamps, z);

Matlabはxaxisラベル自体を処理します(つまり、日付の時間範囲全体に均等に分散します)が、タイムスタンプ番号になります。xaxisでフォーマットされた日付を取得するには、次を使用します。

datetick('x');
于 2012-04-14T11:57:11.233 に答える