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 回答