Domanda

Non ho questa trama

[ piena risoluzione ]

alt text

devo fare scala verticale linea in un punto sull'asse x che la utente immette e mostra le coordinate del punto di intersezione di quella linea verticale con la mia trama.

Come può essere fatto in MATLAB?

per esempio. L'utente immette 1020 poi una linea retta verticale verrà disegnata a 1020 che soddisfa la trama in qualche punto e le coordinate di tale punto verrà mostrato qualche

È stato utile?

Soluzione

Un modo per farlo è quello di utilizzare la GINPUT funzione per selezionare graficamente un punto utilizzando il mouse. Supponendo che i dati che si complottato è memorizzato in una data variabile, il seguente codice dovrebbe fare il genere di cosa che si desidera.

set(gca,'XLimMode','manual','YLimMode','manual');  % Fix axes limits
hold on;
[x,y] = ginput(1);  % Select a point with the mouse
x = round(x);       % Round x to nearest integer value
y = data(x);        % Get y data of intersection
plot([x x],get(gca,'YLim'),'k--');  % Plot dashed line
plot(x,y,'r*');     % Mark intersection with red asterisk
disp('Intersection coordinates:');
disp([x y]);        % Display the intersection point

Quanto sopra presuppone che i valori x del grafico sono solo indici nella matrice dei dati si sta tracciando, che sembra essere il caso dal grafico mostrate sopra.

Altri suggerimenti

Prova qualcosa di simile:

x = 1020;

% plot a vertical line
ylimits = get(gca, 'YLim');
hold on;
plot([x x], ylimits, 'k');

% mark the intersection with the plot
plot(x, data(x), 'ro');
annot = sprintf('Intersection: x=%f, y=%f', x, data(x));
text(x, data(x), annot);

Il codice non è testato e presuppone che il dato è quello attuale, i dati tracciati viene memorizzato nella "dati" matrice e che la trama originale è stato fatto senza specificare un extra x-vettore.

è anche possibile utilizzare il hline funzioni e vline, che può essere scaricato da: http://www.mathworks.com/matlabcentral/fileexchange/1039-hline-and-vline

Lo fanno praticamente lo stesso per voi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top