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

Datenpunkte aus plot

 

phantomas_81
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 12.09.11
Wohnort: Bielefeld
Version: 2011a
     Beitrag Verfasst am: 12.09.2011, 14:50     Titel: Datenpunkte aus plot
  Antworten mit Zitat      
Hallo! Bin seit Tage auf der Suche baer leider nichts treffendes gefunden.
Hier mein Anliegen:
Ich lasse mir eine Kontur in X und Y plotten, ca 720 Messpunkte. Da diese Messpunkte mittels eines Sensors aufgenommen werden schwanken diese natürlich. Das Schwanken lasse ich mir mit Hilfe der filtfilt Funktion relativ gut minimieren.
Zusätzlich möchte ich jetzt, am besten mit der Maus, Messpunkte im Plot anklicken um z.b dazwischen eine Gerade zu legen.
Bisher hab ich es mit ginput versucht, ich bekomme es aber nicht hin das mir angezeigt wird wenn ich mich über einen Messpunkt befinde oder daneben, somit ist es sehr schwer einen Messpunkt der Messreihe anzuklicken. Ich möchte es nur zulassen das Messpunkte der Messreihe angeklickt werden können... Smile
Hat jemand eine Idee oder sogar einen Lösungsvorschlag?
Private Nachricht senden Benutzer-Profile anzeigen


phantomas_81
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 12.09.11
Wohnort: Bielefeld
Version: 2011a
     Beitrag Verfasst am: 13.09.2011, 09:48     Titel:
  Antworten mit Zitat      
Hallo,
bin immer noch auf der Suche nach einer Lösung für mein Problem!
Ich finde keinen Ansatz wie ich es hin bekomme das es erkenntlich gemacht wird sobald der cursor sich auf einem Messpunkt innerhalb eines Plots befindet.
Um die Punkte einzulesen mittels Maus benutze ich ginput....
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.09.2011, 11:23     Titel: Re: Datenpunkte aus plot
  Antworten mit Zitat      
Hallo phantomas_81,

Du könntest statt GINPUT die ButtonDownFcn des LINE-Objekts benutzen, um Mouse-Events abzufangen. Dabei wird ein gewisser Korridor von ein paar Pixeln Briete um das Line-Objekt gelegt, man muss also nicht das exakt Pixel treffen. Im callback der ButtondownFcn könntest Du dann den nächsten benachbarten Messpunkt auswählen.

Code:
AxesH = axes;
LineH = line(1:100, rand(1, 100));
setLineH, 'ButtonDownFcn', {@myCallback, AxesH});

function myCallback(LineH, EventData, AxesH)
XData = get(LineH, 'XData');
YData = get(LineH, 'YData');
CurrentRay = get(AxesH, 'CurrentPoint');
CurrentX = CurrentRay(1);
[dummy, Index] = min(XData - CurrentRay);
% Jetzt enthält Index den Datenpunkt, der am nächsten liegt
 

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
phantomas_81
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 12.09.11
Wohnort: Bielefeld
Version: 2011a
     Beitrag Verfasst am: 13.09.2011, 14:32     Titel:
  Antworten mit Zitat      
Vielen Dank für die Beteiligung;-)

OK ganz verstehen tue ich den code von dir noch nicht.
mein plot wird hiermit angestoßen
Code:

axes(handles.axes2);
b=plot(Xfilt,Yfilt,'o');
 

könntest du mir nochein beispiel geben in bezug auf mein plot?
Bin leider ein totaler neuling in Matlab "duck"

P.S
Mein Ziel ist es eine gemessene Kontur von einem Hohlkörper darzustellen. Da die Messdaten aber kleinen Messfehlern bzw nicht glatt sind. möchte ich diese manipulieren. Asl Beispiel dort wo eigentlich eine Gerade seien sollte möchte ich dieses Stück durch eine Gerade ersetzen und wo eine Kurve (bogen) seinen soll diesen auch durch einen Bogen ersetzen.
Vielleicht hilft es ja wenn du/ihr mein Vorhaben kennt
_________________

Gruß Jan

Zuletzt bearbeitet von phantomas_81 am 13.09.2011, 15:01, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.09.2011, 14:59     Titel:
  Antworten mit Zitat      
Hallo phantomas_81,
In meinem Code fehlt eine Klammer
setLineH -> set(LineH
Für Dein Porgramm wäre dies:
Code:
axes(handles.axes2);
b = plot(Xfilt,Yfilt,'o');
set(b, 'ButtonDownFcn', {@myCallback, handles.axes2});

Jetzt solltest Du genug Informationen haben, um das Program laufen zu lassen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
phantomas_81
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 12.09.11
Wohnort: Bielefeld
Version: 2011a
     Beitrag Verfasst am: 15.09.2011, 12:58     Titel:
  Antworten mit Zitat      
Hallo,

das Problem habe ich nun in den Griff bekommen. Habe allerdings weiterhin die GINPUT Funktion in gebrauch. Um meinen ersten und letzten Wert auf einen Vorhandenen zu setzen habe ich mir den Messwerte als Kreis markiert und kann so diese Werte besser anklicken.

Jetzt bin ich auf der suche nach einer möglichkeit diese neuen Werte in den alten Vektor an die Stelle der alten Werte zu schreiben. Hinzu kommt das die neuen Werte eine feinere skalierung haben als die alten Werte.
Jetzt möchte ich die neuen Werte in den alten Vektor einfügen, so dass ein neuer Vektor entsteht der die alten Messwerte beinhaltet und an der richtigen Stelle die neuen Werte hat!
ist dies möglich, bzw ist das verständlich was ich meine?
Private Nachricht senden Benutzer-Profile anzeigen
 
phantomas_81
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 12.09.11
Wohnort: Bielefeld
Version: 2011a
     Beitrag Verfasst am: 20.09.2011, 09:30     Titel:
  Antworten mit Zitat      
Hallo,
gibt es eine Möglichkeit, Datenpunkte in einem Plot Interaktiv zu bewegen?
Also Messwerte einlesen, plotten und bei Bedarf mit Mauszeiger bewegen.
Wäre wieder über jede Antwort sehr erfreut
_________________

Gruß Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 20.09.2011, 11:29     Titel:
  Antworten mit Zitat      
Hallo phantomas_81,

Eine Methode ist z.B.: http://www.mathworks.com/matlabcent.....pulating-data-in-a-figure.

Gruß, Jan
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.