我有许多CSV文件,每个文件代表我想要生成的3D曲面图。
文件的结构如下:
然而,文件中的每隔一行代表前一行的数据点,+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')