2014-09-17 3 views
0

J'ai des difficultés à générer un graphique de surface tridimensionnel dans Scilab. Je continue d'obtenir l'erreur:Impossible de générer un graphique de surface dans Scilab

! - erreur 999 Objplot3d: x vecteur n'est pas monotone.

J'utilise la commande:

plot3d(x,y,z) 

où x et y sont des matrices 200X1 (aka vecteurs de colonnes) et z est une matrice 200X200. J'ai pensé que je devais peut-être transposer y, mais cela a conduit à la même erreur.

+0

sont vos x et y linéaire? – spoorcc

Répondre

0

help plot3d exige, en effet, que les deux premiers arguments soient monotones (c'est-à-dire triés). J'aimerais que quelqu'un puisse me dire pourquoi!

Depuis votre x (et peut-être y) n'est pas ordonnée, ce qui provoque l'erreur, il vous suffit de les trier, puis payer une certaine attention à garder les valeurs z où ils appartiennent. Quelque chose comme:

[newx,ix]=gsort(x); 
[newy,iy]=gsort(y); 
newz = z(ix,iy); 
plot3d(newx,newy,newz) 

(ix est la permutation telle que x(ix)==newx)

Questions connexes