Matlab - 如何绘制数据?

时间:2011-08-22 01:25:48

标签: matlab csv plot data-visualization

我有许多CSV文件,每个文件代表我想要生成的3D曲面图。

文件的结构如下:

  • 文件的列号代表X轴
  • 每行中的值代表Y轴
  • ,行号代表Z轴

然而,文件中的每隔一行代表前一行的数据点,+1标准偏差。

此外,每对行都比最后一行长。

所以我想要的是每个情节上的两个表面。第一个表面由每个奇数行表示,第二个表示由每个偶数行表示。

我该怎么做?

由于

1 个答案:

答案 0 :(得分:0)

我知道你在Matlab中不能有非方矩阵。所以离你最近的 可以做的是将NaN放在缺少的空间中:

A = [
    10 10 NaN NaN NaN
     2  2 NaN NaN NaN
    20 20 20 NaN NaN
     3  3  3 NaN NaN
    30 30 30 30 30
     4  4  4  4  4
];

其他一切都是一样的。

分割:

[rows, cols] = size(A);
A_mean = A(1:2:rows, :);
A_sd   = A(2:2:rows, :);

制作轴(我将它们重新排列为与你相似;)

[XX, ZZ] = meshgrid(1:cols, 1:(rows/2))

情节:

surf(XX, A_mean, ZZ); hold('on');
surf(XX, A_sd, ZZ); hold('off')