WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Daten aus Plot extrahieren

 

BlackTiger
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 19.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2018, 09:02     Titel: Daten aus Plot extrahieren
  Antworten mit Zitat      
Hallo zusammen,

mal wieder ne Frage Smile

Ist es möglich aus einem Plot in bestimmten Zeitabständen (in meinem Fall alle 3 sek.) den entsprechenden Y-Wert auszugeben ?

Soll dann beispielsweise so aussehen:

x_Wert = [3, 6, 9, 12, 15, ....];
y_Wert = [y1, y2, y3, y4, ....];

EndVektor = [x_Wert, y_Wert];


Schon mal vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen


J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 07.08.2018, 09:09     Titel:
  Antworten mit Zitat      
Hi BlackTiger,

du gibst doch schon Parameter vor anhand derer der Plot erstellt wird. Dann kannst du deine Werte direkt aus den Eingangsvektoren auslesen?

Grüße
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackTiger
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 19.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2018, 09:12     Titel:
  Antworten mit Zitat      
Das Problem dabei ist, dass diese dann ungerade sind , wie beispielsweise:

x_Vektor =

3,00711326114795
3,04674719294780
3,08663030287390
3,12676117814808
3,16713837882188
.
.
.

Und ich hatte iegentlich daran gedacht, dass es einfacher wäre wenn ich ausm Plot alle 3 Sekunden die Y-Werte extrahiere.
Private Nachricht senden Benutzer-Profile anzeigen
 
J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 07.08.2018, 09:16     Titel:
  Antworten mit Zitat      
Hi Blacktiger,

dann interpoliere dazwischen Wink

Grüße
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackTiger
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 19.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2018, 10:34     Titel:
  Antworten mit Zitat      
Ich versuche es momentan mit der Interpolation.
So wie ich es verstanden habe funktioniert die Funktion interp1 wie folgt:



x = [....];
y = [....];
a= [3,6,9,12,15,18,21,24,27,30];

test = interp1(x,y,a);

in "test" werden nun die y-Werte abgespeichert, die an den Stellen 3,6,9... vorliegen.


Wenn ich das nun so machen bekomme ich folgende Fehlermeldung:

"The grid vectors are not strictly monotonic increasing."

Question
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.497
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.08.2018, 11:17     Titel:
  Antworten mit Zitat      
Hallo,

die Meldung bezieht sich auf x. Leider schreibst du nicht, was x bei dir ist.
Jedenfalls ist es kein strictly monotonic increasing Vektor wie erforderlich.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackTiger
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 19.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2018, 13:10     Titel:
  Antworten mit Zitat      
der Vektor x ist ein Geschwindigkeitsvektor, und die y-Werte sind Radmomente.

ist also kein Linearer Verlauf. Daher hatte ich auch daran gedacht, dass ganze ausm Plot zu extrahieren.
Private Nachricht senden Benutzer-Profile anzeigen
 
J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 07.08.2018, 13:13     Titel:
  Antworten mit Zitat      
Hallo BlackTiger,

es muss auch nicht linear sein. Nur x muss monoton steigend sein!

Grüße
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackTiger
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 19.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2018, 13:15     Titel:
  Antworten mit Zitat      
verstehe, aber ist halt auch nicht monoton steigend! Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.497
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.08.2018, 13:19     Titel:
  Antworten mit Zitat      
Hallo,

dann ist Interpolation aber nun mal nicht sinnvoll. Wenn du beispielsweise eine Art ansteigende Sinusschwingung hast, welcher Abschnitt soll denn dann für die Interpolation genommen werden?

Wenn die Reihenfolge der Geschwindigkeiten nicht relevant sein sollte, dann kannst du sie sortieren (und die Momente natürlich entsprechend mit).

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 07.08.2018, 13:21     Titel:
  Antworten mit Zitat      
Dann musst du wohl die Vektoren erst sortieren, so dass x monoton steigend ist (und den y-Vektor entsprechend anpassen).

Grüße
Jonas

EDIT: Der Meister war mal wieder flotter unterwegs Very Happy
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackTiger
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 19.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.08.2018, 09:23     Titel:
  Antworten mit Zitat      
und meint ihr nicht, dass es eventuell einfacher wäre dass ganze über den Plot zu realisieren ?

Weil, wenn ich mich richtig informiert habe, besteht ja die Möglichkeit ausm Plot Daten zu extrahieren mit der folgenden Funktion:

h = findobj(gca,'Type','line')
x=get(h,'Xdata')
y=get(h,'Ydata')

Hierbei erhalte ich aber wieder "ungerade" Werte entsprechend meiner Datenpunkte.
Gibt es hierbei nicht die Möglichkeit zu sagen, dass ich alle 3 Sekunden die Y-Werte haben möchte?

Gegebenenfalls muss ich es ja mit der Sortierung machen.
Private Nachricht senden Benutzer-Profile anzeigen
 
J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 08.08.2018, 09:37     Titel:
  Antworten mit Zitat      
Hi BlackTiger,

mit get erhältst du nur die Eingangswerte die für das Plotten verwendet wurden. Dir wird vermutlich nichts anderes übrig bleiben als die Vektoren zu sortieren. Als kleiner Tipp: Füge die beiden Vektoren erst zu einer Matrix zusammen, dann kannst du die Matrix nach deiner x-Spalte (oder -Reihe, je nachdem wie die Vektoren aussehen bzw. die Matrix aussieht) sortieren. Anschließend wieder in die einzelnen Vektoren speichern, oder gleich als Matrix stehen lassen. Macht das ganze etwas einfacher.

Grüße
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.497
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.08.2018, 10:03     Titel:
  Antworten mit Zitat      
Hallo,

die Daten, die du aus dem Plot extrahierst, sind genau die Daten, mit denen du den Plot erzeugt hast. Das bringt dich also nicht weiter.
Meine Empfehlung wäre weiterhin die vom 7.8., 13:19.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackTiger
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 19.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.08.2018, 11:04     Titel:
  Antworten mit Zitat      
Vielen Dank für die - wie immer sehr schnellen und hilfreichen Antworten. Echt top!

Habe das ganze aber etwas gelöst - auch wenn es nicht so genau sein sollte.

Hab den Geschwindigkeitsverktor einfach auf 1 bzw. 2 Nachkommastellen gerundet und mit einer schleife die entsprechenden Y-Werte rausgesucht. Alles in eine neue Matrix gepackt und fertig ist Smile

Wie gesagt, ist zwar nicht so genau wie als wenn ich das mit der Sortierung gemacht hätte, aber den minimalen Fehler darf ich mir erlauben.

Thanks !
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.