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

Betsimmte Bereich im Plot löschen ?

 

jeko87
Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 21.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2010, 17:49     Titel: Betsimmte Bereich im Plot löschen ?
  Antworten mit Zitat      
hi,
also ich hab ein Problem und zwar:

ich hab einen Plot in dem ich 2 Punkte markieren kann (plot1.jpeg). Anschliessend wird über eine Schaltfläche 'btnInterpolation' eine Interpolation über die markierten Punkte durchgeführt (plot2.jpeg).
(Für die Interpolation merke ich mir mehr Punkt: start-10, start, start+10, stop-10, stop, stop+10)...
klappt auch alles, habe dazu die Plots mal als jpeg hochgeladen.

Nun meine Frage, ist es möglich, den Bereich zwischen den markierten Punkten irgendwie zu löschen oder auszublenden ?
so dass nur noch die 'neue' Kurve besteht ?

plot2.jpg
 Beschreibung:

Download
 Dateiname:  plot2.jpg
 Dateigröße:  40.64 KB
 Heruntergeladen:  683 mal
plot1.jpg
 Beschreibung:

Download
 Dateiname:  plot1.jpg
 Dateigröße:  37.59 KB
 Heruntergeladen:  659 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.07.2010, 21:29     Titel:
  Antworten mit Zitat      
Hallo,

ich würde es mit einem Handle auf die alte Linie versuchen und dann xdata und ydata passend abändern:
Code:
p = plot(....) %alter Plot
set(p, 'xdata', xneu)
set(p, 'ydata', yneu)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
jeko87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 21.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2010, 22:58     Titel:
  Antworten mit Zitat      
ja ok, kann ich mal probieren.

ich hatte jetzt allerdings noch einen anderen Ansatz...

wenn ich den plot habe, dann gehe ich von Beginn an bis zu dem 1. markierten Punkt (bereich1) und anschliessend gehe ich vom 2. markierten Punkt bis zum Ende des Plots (bereich2)
danach kann ich die beiden Bereiche addieren (gesamt_bereich) und könnte einen neuen Plot auf diesen Gesamtbereich anwenden ?

ist mir schon bewusst, dass dies keine Interpolation ist, aber es geht mir erst mal darum, gewisse Werte nicht mehr zu beachten.

also code-technisch:
Code:

bereich1=0:1:evalin('base','punkt1');
bereich2=evalin('base','punkt2'):1:evalin('base','anzBilder');
gesamt_bereich=bereich1+bereich2;
 


Problem ist nur, dass mir 'ne Fehlermeldung ausgegeben wird
Code:

Matrix dimensions must agree.
 


Hab aber keinen Plan wie ich das Problem nun wieder beheben soll, denn die Grösse der Matrizen ist halt nie gleich Confused

Ist diese Lösung eigentlich ok so, oder bringt es mich nicht weiter ?

danke

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

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.07.2010, 23:18     Titel:
  Antworten mit Zitat      
Hallo,

ich vermute, du willst die Bereiche zusammensetzen - also nicht +, sondern [ ]:
Code:
gesamt_bereich=[bereich1, bereich2];


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
jeko87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 21.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.07.2010, 09:48     Titel:
  Antworten mit Zitat      
Ja stimmt.
Aber hab mich nun damit auseinandergesetzt, aber meine Möglichkeit ist echt viel gebastelt...und bis jetzt hab ich auch noch nicht wirklich eine Lösung.

Wollte nun deine Lösung mal probieren
Code:

p = plot(....) %alter Plot
set(p, 'xdata', xneu)
set(p, 'ydata', yneu)
 


nur versteh ich sie nicht so recht...also mit dem plot ist kein Problem, 'xdata' wäre einfach der Variablenname(?), wenn ich die Matlab-Hilfe richtig verstehe...das Problem für mich ist xneu, wie krieg ich den Wert ?

anschliessend würd ich dann den plot wieder neu ausgeben

danke für deine Hilfe

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

Forum-Meister


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

'xdata' und 'ydata' sind Eigenschaften der Linie (und heißen immer so).
xneu und yneu sind die neuen Daten für x und y, die verwendet werden sollen - und das sind quasi beliebige Variablennamen oder Ausdrücke.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
jeko87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 21.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.07.2010, 10:32     Titel:
  Antworten mit Zitat      
ok

ich hab dies jetzt in meinen code mit eingebaut
Code:

      x=evalin('base','X');         % X-10, X, X+10
      y=evalin('base','Y');         % Y-10, Y, Y+10
      anz=evalin('base','anzBilder');
      xi=0:size(x):anz;
      yi=interp1(x,y,xi,'linear');
      plot(yi,'r');                 % interpolation ausgeben
     
      v = evalin('base','data');    % daten für Plot stehen in Variablen data                  
      [M N] = size(v);              % vektor aufbauen  
     
      p = plot(1:M, v(:,3));        % plot ausgeben - 1. Zeile, 3.Spalte (alter plot)  
      set(p, 'xdata', x);           % x --> Code 1.Zeile
      set(p, 'ydata', y);
 


nur denk ich, dass dies nicht die Lösung ist, sitz auch vielleicht auf der Leitung, aber weiss nicht welche Werte ich in der 'set' Zeile zuweisen soll, sry Confused
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.