GNU Octave 3D绘图错误

时间:2017-04-10 15:24:15

标签: 3d gnuplot octave

我试图使用GNU Octave在3D中绘制四个点。所以我首先定义它们。

a = [1 2 3];
b = [-1 0 -1];
c = [5 4 3];
d = [1 0 -2];

接下来,我尝试了plot3(a,b,c,d, 'o'),但我很快放弃了这个想法。相反,我宁愿使用两次plot3函数将其除以hold on

plot3(a,b,'o')
hold on
plot3(c,d);

发生了什么:enter image description here 这个数字代替了四个点,描绘了共点的6个点。

有人可以解释我做错了吗?

2 个答案:

答案 0 :(得分:3)

如果您阅读了plot3的帮助文本,您会发现:

 -- plot3 (X, Y, Z)
 -- plot3 (X, Y, Z, FMT)
 -- plot3 (X, CPLX)
 -- plot3 (CPLX)

您使用plot3表单plot3 (X, CPLX)来调用 If only two arguments are given, as plot3 (X, CPLX) the real and imaginary parts of the second argument are used as the Y and Z coordinates, respectively. ,其中包含:

plot3

您应该做的是使用plot3 (X, Y, Z, FMT)格式致电plot3。此外,您只需拨打一次hold on即可完成所有操作,无需a = [ 1 2 3]; b = [-1 0 -1]; c = [ 5 4 3]; d = [ 1 0 -2]; p = [a; b; c; d]; plot3 (p(:,1), p(:,2), p(:,3), "o") 并添加新积分。像这样:

getShoeType()

答案 1 :(得分:2)

正如the documentation非常明确地指出,函数的输入是xyz坐标。如果使用数组,则为这些向量中的每个对应点创建单个点。在您的情况下,您向plot3提供的每个输入都有三个元素,因此将创建三个点。由于您像这样两次致电plot3,结果将是6分。

plot3正确用法是将所有x值放入数组中,将y值放入数组中,并{{1数组中的值。

z

或者更简洁

plot3([a(1), b(1), c(1), d(1)], [a(2), b(2), c(2), d(2)], [a(3), b(3), c(3), d(3)], 'o')