我在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)

(ixx(ix)==newx这样的排列)

10-05 22:05