【问题标题】:Drawing 3D points in Matlab and connect them in order via line在 Matlab 中绘制 3D 点并通过线按顺序连接它们
【发布时间】:2013-04-02 03:14:06
【问题描述】:

我有一个包含 3D 浮点数的数组。我不仅想用图形来描绘它们,还想用线条将它们连接起来。

示例)假设我们有一个名为 X 的数组:

X=[0, 0, 0; 0.48, -0.88, 0.09; -1.06, 0.55, 0.9; -0.65, 1.5, -1.44; 1.1, 0.59,
-1.11;0.76, 0.86, -0.52; -1.08, -0.28, 0.55; 1.47, -1.21, 0.14; 1.42, -2.15, 0.71; -0.64,  
1.87, 2.4;2.32, -2.44, 2.02; 2.25, -2.56, -3.03; 2.35, 2.65, -1.5; 0.23, -2.25, 2.78; 2.47,  
-3.12,  -1.91; 2.27, 1.37, -3.05; 2.3, 1.9, -1.29; -1.77, -0.51, 2.33];  

    X1= [0,0,0]  
    X2=[0.48, -0.88, 0.09]  
    X3=[-1.06, 0.55, 0.9] ...   

现在我希望将 X1...Xn 在图中绘制为点,然后 X1 连接到 X2,X2 连接到 X3,X3 连接到 X4,等等

我该怎么做?

这是我所做的,但我得到了一个错误的数字:

figure;hold on;  
    P=[];  
    for i=1:size(X,1)  
    x=X(i,1);  
    y=X(i,2);  
    z=X(i,3);  
    A=[ x,y,z];  
    P=vertcat(P,A);  
    plot(P);  
    end  

这是输出:

【问题讨论】:

  • 注意——matplotlibmatlab中的绘图不一样,所以我去掉了标签。

标签: matlab mesh matlab-figure scatter-plot


【解决方案1】:

查看plot3 documentation

特别是,plot3(X, Y, Z) 将绘制点并用线连接它们。

在你的情况下:

plot3(X(:, 1), X(:, 2), X(:, 3))

【讨论】:

  • @mathical.coffe : 1. 只是为了我的澄清- plot3(X(:, 1), X(:, 2), X(:, 3)) 是否意味着对于所有 3D 点(v1,v2,v3) 每个都排成一排,将它们连接在一起? 2.如何在绘图上给轴命名?
  • plot3(X, Y, Z) 绘制 X 坐标 X、Y 坐标 Y 和 Z 坐标 Z 的点,将它们连接在一起(阅读文档以获取更多信息;我在答案)。文档底部是一个示例,它还设置了轴名称,因此您可以从那里了解如何操作。
  • 谢谢,这是答案:plot3(X(:, 1),X(:, 2), X(:, 3)); xlabel('X'); ylabel('Y'); zlabel('Z');网格上;
猜你喜欢
  • 2020-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多