1

測定データがあります。xy値の形式で保存されます

  x         y      value

   64        4     2743
   64        8     3531
   64       16     4543
   64       32     5222
   64       64     5730
  128        4     2778
  128        8     3500
  128       16     4657
  etc

これをフォーマットのマトリックスに再配置するにはどうすればよいですか

    y= 4    8    16   32   64
x=
64    2743 3531 4543 5222 5730
128   2778 3500 4657 …    …  
256   …    …    …    …    …
512   …    …    …    …    …

オクターブで?

4

1 に答える 1

0

ここでは、x と y の値の組み合わせごとに測定値があると仮定しています。そうでなければ、行列を作成できません。また、 x 値と y 値のシーケンスは、例のように繰り返す必要があります。

% raw data is in a matrix D
% Unique will tell us all the values in the order in which they appear
x = unique(D(:, 1));
y = unique(D(:, 2));
% Reshape can create a matrix from a vector in column-major order
d = reshape(D(:, 3), length(y), length(x))'; % note transpose

newData = [x d];

出力:

octave> D
D =

     64      4   2743
     64      8   3531
     64     16   4543
     64     32   5222
     64     64   5730
    128      4   2778
    128      8   3500
    128     16   4657
    128     32   4512
    128     64   7854
octave> y'
ans =

    4    8   16   32   64

octave> newData
newData =

     64   2743   3531   4543   5222   5730
    128   2778   3500   4657   4512   7854
于 2012-07-04T03:52:16.923 に答える