Matlab Plot < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 16:59 Di 15.07.2008 | Autor: | Bateman |
Aufgabe | Ich habe ein einfaches Problem und zwar hab ich ein File das speichert mir die Daten folgendermassen: |
Ich habe ein einfaches Problem und zwar hab ich ein File das speichert mir die Daten folgendermassen:
x y
1 8
4 4
2 1
3 3
4 2
1 5
3 7
2 8
Somit hab ich zu verschiedenen Zeitpunkten x mehrere y-Werte. Ich moechte gerne fuer jedes x mir die verschiedenen y-Werte plotten lassen. Noch schoenes waere es, wenn mir Matlab eine senkrechte Linie vom min zum max Wert von Y zeichnet zu einem bestimmten Zeitpunkt x.
Jemand eine Idee wie sich das schoen bewerkstelligen laesst?
Danke!
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Hallo,
du schreibst hier nicht, wie genau die Daten geladen werden, also nehme ich mal an, nach Laden der Daten haben wir zwei gleich lange Datenvektoren x und y vorliegen. Dann können wir so vorgehen:
x_once = unique(x); %jedes x nur einmal
y_min_max = nan(2, length(x_once)); %Allokation des Speichers für Min-/Max-Werte
for i=x_once', %wie durchlaufen alle x-Werte
y_x=y(x==i); %wir suchen zu jedem x-Wert alle y-Werte
y_min_max(:,i)=[min(y_x); max(y_x)]; %wir bestimmen Min. und Max.
end;
hold on; %zwei Plots in einem
plot(x, y, 'xk'); %alle Datenpunkte plotten
plot(repmat(x_once', 2, 1), y_min_max, 'r-'); %min und max verbinden
hold off; %Figure wieder freigeben
Du kannst den ersten plot-Befehl natürlich weglassen, wenn dich die einzelnen Datenpunkte nicht interessieren.
Gruß
Martin
|
|
|
|