J'ai le problème suivant. J'ai deux matrices, une matrice 2d de taille X, Y avec un ensemble de hauteurs de terrain prises à partir d'un fichier DEM et une matrice 3d de taille X, Y, Z avec des valeurs de hauteur Z de 0 à 5000 mètres pour chacune (X, Y) point.Matlab - Trouver les valeurs matricielles 2d dans la matrice 3d
Je veux comparer, pour chaque point (X, Y), sa hauteur DEM avec la colonne de Z valeurs de hauteur et prendre la plus proche. Par exemple:
dem(1,1) = 1850 %actual height of the terrain at point (1,1)
heights(1,1,:) = 0, 1000, 2000, 3000, 4000, 5000 %column of heights at point (1,1)
Si j'utilise la fonction « trouver » j'obtiens l'erreur suivante:
find(heights > dem, 1)
Error using >
Number of array dimensions must match for binary array op.
Est-il une solution à ce qui ne nécessite pas de deux pour les boucles?
Merci beaucoup d'avance pour votre aide!
si '' X' et Y' restent les mêmes, n'est pas la question va être réduite à une comparaison betwenn 'Z 'Arrays? Car je m'attends à ce que les coordonnées de chaque point soient invariantes entre les représentations ** 2d ** et ** 3d **. Ai-je raison? – fpe
Oui, pour chaque point c'est une comparaison entre un vecteur de longueur Z et une valeur. Cela pourrait être fait avec 'find (height (x, y,:)> dem (x, y))' pour chaque point. Cependant je voudrais une solution pour la matrice entière en même temps, sans boucler par les coordonnées X et Y. –