-1

我有一个问题,我将数据格式化为在 Z 轴上有 n 个数据点,并且每个 Z 数据点都有 m 个对应的 x 和 y 点。我本质上想要有 n 个 2D m 点图,但合并到一个曲面中。

我的数据采用以下形式:

z = [0 1 2 3]

data(:, :, 1) = [0 1 2; 2 2 2] (the first row corresponds to the x points, second to the y; the page (the 1) corresponds to the respective z point at which I am plotting said x and y points)

所以本质上,在z(i),我想data(:, :, i)绘制。然后最后全部合并成一个表面。我将如何做到这一点?

一个可能有助于想象这种情况的例子是,如果data(:, :, i)所有i都是均匀的,就像上面的样本一样,那么将绘制一个立方体表面(体积 12)。

4

1 回答 1

0

所以本质上,在 z(i) 处,我想绘制 data(:, :, i) 。然后最后全部合并成一个表面。我将如何做到这一点?

用于scatter3绘制具有一组 x,y,z 值的每个点的3-D 散点图。

或者,用于plot3制作3-D 线图。请注意参数格式。

您可以使用类似的代码

for ii = 1:length(z)
    x = data(1, :, ii);
    y = data(2, :, ii);
    scatter3(x, y, z*ones(1, length(x));
end

最后,将视角旋转view([0,0,-1])到面向 z 轴的方向。这样,所有不同 z 值的层都被压缩到一层。

如果您真的想忽略 z 值,但只想查看所有点的叠加图,

for ii = 1:length(z)
    x = data(1, :, ii);
    y = data(2, :, ii);
    scatter(x, y);
end

一个可能有助于想象这种情况的示例是,如果所有 i 的 data(:, :, i) 是均匀的,就像上面的示例一样,那么将绘制一个立方体表面(体积 12)。

正如@rayryeng 评论的那样,我发现这很难想象。“体积 12 的立方体表面”是什么意思?这部分看起来与上面的描述不同。

于 2014-07-16T01:18:12.110 回答