在Matlab中绘制3D点

Raz*_*zer 7 3d matlab 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
Run Code Online (Sandbox Code Playgroud)

如何在Matlab中做到这一点?

zam*_*tta 10

我会用

scatter3(x,y,z,ones(size(x)),data,'filled')
Run Code Online (Sandbox Code Playgroud)

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

scatter3(x,y,z,data.^-2,data,'filled')
Run Code Online (Sandbox Code Playgroud)