我在Scilab中生成三维表面图时遇到了麻烦。我不断收到错误:
!-错误999
Objplot3d:x vector 不是单调的。
我正在使用以下命令:
plot3d(x,y,z)
其中x和y是200X1矩阵(又名列 vector ),z是200X200矩阵。我以为也许我必须转置y,但这也导致了同样的错误。
最佳答案
help plot3d
确实要求前两个参数是单调的(即排序的)。我希望有人能告诉我原因!
由于您的x
(可能还有y
)未排序,这会导致错误,因此您只需要对它们进行排序,然后注意将z
值保留在它们所属的位置即可。就像是:
[newx,ix]=gsort(x);
[newy,iy]=gsort(y);
newz = z(ix,iy);
plot3d(newx,newy,newz)
(
ix
是x(ix)==newx
这样的排列)