0

次の形式の 21128x9 マトリックスがあります。

x = ['Participant No.' 'yyyy' 'mm' 'dd' 'HH' 'MM' 'SS' 'question No.' 'response']

例えば

   x =

  Columns 1 through 5

      18        2011          10          26          15
      18        2011          10          26          15
      18        2011          10          26          15
      18        2011          10          26          15
      18        2011          10          26          15
      19        2011          10          31          13
      19        2011          10          31          13
      19        2011          10          31          13
      19        2011          10          31          13
      19        2011          10          31          13

  Columns 6 through 9

      42          33          27           4
      42          39          17           2
      42          45          52           2
      42          47          45           3
      42          50          12           3
       6           5          36           1
       6          20          27           4
       6          22          34           5
       6          33          43           3
       6          42          42           1

ここで、列 2 ~ 7 は日付ベクトルです。データは日付/時刻でソートされます。

各参加者の各質問に答えるのにかかった時間を計算したいと思います。つまり、行 1 と 2、2 と 3、3 と 4、4 と 5、6 と 7、7 と 8 などの間に経過した時間です。 - 参加者番号で並べ替えられたマトリックスで終了し、質問ごとの平均所要時間を計算できます。

etime関数を使用してみましたが、役に立ちませんでした。

編集: etimeに関しては、実際に機能するかどうかを確認するために、次のように記述しようとしました。

etime(x(2,5:7),x(1,5:7))  

行1と2の列5〜7だけを比較しますが、私は戻ってきます:

    ??? Index exceeds matrix dimensions.

    Error in ==> etime at 41
    t = 86400*(datenummx(t1(:,1:3)) - datenummx(t0(:,1:3))) + ...
4

2 に答える 2

1

簡単な手順を次に示します。

  • 比較する 2 つの行の差を計算します
  • 単位あたりの秒数を含むベクトルで乗算します

小規模な例:

% Hours Mins Secs:

difference = ([23 12 4] - [23 11 59]);
secvec = difference .* [3600 60 1];
secdiff = sum(secvec)
于 2013-04-16T13:06:57.983 に答える