2010-08-01 6 views
0

Salut quelqu'un peut-il m'aider avec la commande matlab ici. Je dois déterminer le point le plus élevé dans un contour rempli que j'ai tracée en utilisant des données de matrice dans un fichier. Et puis je dois marquer le point le plus haut avec un 'x' rouge.tracer le point le plus haut dans un contour rempli

load('0101862_mod.dtm') % loading the dtm file 
X = X0101862_mod(1:81,:) % we name X0101862, it is the location where the data X, Y and Z is stored 
Y = X0101862_mod(82:162,:) 
Z = X0101862_mod (163:243,:) 

figure (1) 
subplot(2,2,3) 
[C,h] = contourf(X,Y,Z,10); 
xlabel('x'); ylabel('y'); zlabel('z'); title('X0101862_mod'); 
view(-73,34); axis equal; colormap summer; colorbar; 

Je sais que cela implique une commande 'max'. J'ai gardé l'erreur quand j'utilise max.

Répondre

1

Pour tracer le «X» rouge, vous devez d'abord appeler hold on pour vous assurer que la deuxième commande de traçage n'effacera pas le contour. Ensuite, vous utilisez plot(xMax,yMax,'xr') pour tracer un 'x' rouge aux coordonnées x/y où z est à son maximum. Pour trouver xMax et yMax, vous devez utiliser le deuxième argument de sortie max. MAX renvoie, en tant que première sortie, le maximum (par exemple Z) et, en tant que deuxième sortie, renvoie le numéro de l'élément qui est maximal. Utilisez ce numéro (l'index) pour trouver les éléments dans X et Y qui correspondent à la valeur maximale Z, c'est-à-dire xMax et yMax.

+0

est-ce correct? xMax = max (X); yMax = max (Y); tracé (xMax, yMax, 'xr'); – user391967

+0

N ° xMax est le X correspondant au maximum Z. '[zMax, maxIdx] = max (Z);' renvoie, dans 'maxIdx', l'emplacement dans le vecteur de données où' Z' est le plus haut. Par exemple, si c'est le 5ème élément de Z qui est le plus élevé, 'maxIdx' serait 5. En conséquence, xMax serait le 5ème élément de' X', et yMax le 5ème élément de 'Y'. – Jonas

Questions connexes