在Matlab中绘制3D点

时间:2012-02-23 14:00:41

标签: matlab 3d plot

我想根据值在不同颜色的Matlab中绘制3D点。我有以下代码,但这不起作用,因为plot3d需要一个向量。

x = vdhf_data.data(:,1);
y = vdhf_data.data(:,2);
z = vdhf_data.data(:,3);
data = vdhf_data.data(:,4);

grid on
hold all

for k=1:length(x)
    if data(k) < 6  
        plot3d(x(k), y(k), z(k), 'ws--', 'MarkerEdgeColor', 'r', 'MarkerFaceColor', 'r')
    else
        plot3d(x(k), y(k), z(k), 'ws--', 'MarkerEdgeColor', 'g', 'MarkerFaceColor', 'g')
    end
end

如何在Matlab中做到这一点?

1 个答案:

答案 0 :(得分:10)

我会用

scatter3(x,y,z,ones(size(x)),data,'filled')

这将绘制相同大小的所有点,并根据数据值使用当前色彩图对它们进行着色。您还可以使用数据来缩放每个点的大小。

scatter3(x,y,z,data.^-2,data,'filled')