2014-09-17 2 views
0

У меня возникли проблемы с созданием трехмерного участка поверхности в Scilab. Я продолжаю получать ошибку:Невозможно сгенерировать участок поверхности в scilab

! - error 999 Objplot3d: x вектор не является монотонным.

Я использую команду:

plot3d(x,y,z) 

где х и у являются матрицами 200X1 (так называемые векторы-столбцы) и г является матрицей 200х200. Я думал, может быть, мне пришлось перенести y, но это привело к той же ошибке.

+0

ли ваш х и у линейна? – spoorcc

ответ

0

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)