我试图使用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);
有人可以解释我做错了吗?
答案 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非常明确地指出,函数的输入是x
,y
和z
坐标。如果使用数组,则为这些向量中的每个对应点创建单个点。在您的情况下,您向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')