Salut,
Je dispose de 3 tableaux 1D : x, y, et v, qui proviennent du fait qu'on peut associer une certaine valeur v(x,y) à chaque coordonnée (x,y). Par exemple, au point de coordonnée X = x[62], Y = Y[62] est associé la valeur V = v[62].
Cependant, pour pouvoir utiliser surf (surf(V)
) il faut que v soit un tableau bidimensionnels. Savez-vous comment construire la matrice V à partir de x, y, et v ? (en supposant que s'il y a des "trous", on peut les remplir avec une valeur arbitraire). Merci
Je comprends pas comment ça pourrait être bidimensionnel si tu as X,Y et V. Ca fait 3 dimensions pour moi...
Si je te donne un tableau de valeurs sous forme de matrice 3x3 par exemple, il est en deux dimensions non? Pourtant, à chaque coordonnée ij correspond une valeur et si tu devais décrire cette matrice avec des tableaux 1D tu en uiliserais 3, tous de longueur 9
T'es vecteurs x, y et v ont une taille fixe ? Des trous ?
Mais je comprends pas trop le concept, tu peux expliquer un peu dans quel contexte tu fais ça ?
Si tu veux juste une matrice M dont M(x, y) = v(x, y) alors il faut faire deux boucles for.
Il veut que M(x_i, y_i) = v_i.
A priori tu commences par chercher le max de tes tableaux x et y pour savoir la taille que doit faire ta matrice, puis tu y mets tes éléments. C'est pas une très bonne représentation si ta matrice est creuse, par contre
Donc c'est une matrice diagonale ?
Lowenheim : en fait je sais comment créer cette matrice avec une boucle for. Ma question est : y a-t-il un fonction built-in de matlab qui fait cela pour moi ? Car ça doit être une situation courante non ? Imaginons que je me ballade en forêt et que je note, de temps à autres, mes coordonnées géographiques ainsi que la taux d'escargots sous mes pieds. J'obtiens trois listes telles que celles que je décris dans mon post initial.
Tikim: Non, ce n'est pas une matrice diagonale.
Example concret (en pseudocode):
Les tableaux 1D:
x = [1, 3, 1, 2]
y = [2, 2, 1, 3]
v = [a, b, c, d]
Donnent la matrice:
c 0 0
a 0 b
0 d 0
(si l'on suit la convention x = colonne, y = ligne, sinon c'est l'inverse. Et le premier indice est 1, pas zéro. Et on donne la valeur 0 aux endroits non-spécifiés)