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

Minimaler Abstand zweier geplotteter Kurven

 

pescatore265
Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 04.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.11.2014, 14:25     Titel: Minimaler Abstand zweier geplotteter Kurven
  Antworten mit Zitat      
Moin !

Ich habe gerade folgendes Problem :

Ich habe mir mithilfe mehrerer Matrizen zwei Kurven plotten lassen.
Ich möchte nun, dass mir der minimale Abstand berechnet ird und die Kurven dementsprechend verschoben werden.
Ich habe allerdings nur Wertepaare und keine Funktionen für die Kurven und habe leider nicht die geringste Ahnung, wie ich das machen soll.

Meine Kurven habe ich wie folgt zeichnen lassen :

Code:


figure

hold on
for i = 1: 1 : Laenge_Matrix_Temp_HS_neu
   
   plot([Matrix_Enthalpiedifferenz_HS(i,1),Matrix_Enthalpiedifferenz_HS(i,2)],[Matrix_Temp_HS_neu(i,1),Matrix_Temp_HS_neu(i,2)],'red')  
   xlabel('Enthalpie H')
   ylabel('Temperatur in °C')
   

end

for i = 1: 1 : Laenge_Matrix_Temp_CS_neu
   
   plot([Matrix_Enthalpiedifferenz_CS(i,1),Matrix_Enthalpiedifferenz_CS(i,2)],[Matrix_Temp_CS_neu(i,1),Matrix_Temp_CS_neu(i,2)],'blue')  
   xlabel('Enthalpie H')
   ylabel('Temperatur in °C')
   

end


hold off


 


Zusätzliche Schwierigkeit : die blaue Kurve darf die rote Kurve in keinem Fall überschreiten, schneiden oder berühren. Balu soll also immer unter rot liegen.

Vielen Dank im Voraus !

Gruß

compositecurvesplot.fig
 Beschreibung:

Download
 Dateiname:  compositecurvesplot.fig
 Dateigröße:  5.07 KB
 Heruntergeladen:  363 mal
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 10.11.2014, 15:53     Titel:
  Antworten mit Zitat      
Ich denke es ist wichtig schon die Daten Vorzuverarbeiten, also die Korrektur durchzuführen bevor man sie plottet. Das geht dann wohl so, dass man die beiden Ergebnissvektoren subtrahiert, dann den "MIN" Befehl darauf loslässt und letztlich einen der Ergebniss vektoren um diesen offset korrigiert.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
pescatore265
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 04.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.11.2014, 15:58     Titel:
  Antworten mit Zitat      
Interessant.

Ich werd's ausprobieren. Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
pescatore265
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 04.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2014, 10:38     Titel:
  Antworten mit Zitat      
Leider komme ich mit deinem Tipp nicht so recht weiter, Andreas :/

Ich versuche noch einmal zu erklären, woran ich arbeite. Code und Figure sind unverändert zu meinem ersten Thread.

Beim Zeichnen meiner Composite Curves in Figure 2 ( im Code kommentiert ) entsteht bei mir folgendes Problem. Zum einen darf die blaue Kurve niemals über der roten Kurve liegen und diese weder schneiden noch berühren. Dass die blaue Kurve derzeit über der roten Kurve liegt, hängt wohl mit meiner einfachen Auftragung zusammen. Ziel ist es jetzt, den sogenannten Pinchpoint automatisiert finden zu lassen. Der Pinchpoint ist der minimal mögliche Abstand in y-Richtung ( blaue darf rote nicht überschreiten, berühren oder kreuzen!). Zudem soll das Programm die blaue Kurve dann dementsprechend in x-Richtung verschieben. Ich habe angefangen, es mit Polynomen für die Kurven zu probieren, allerdings habe ich den Bogen noch nicht raus.

Vielen Dank im Voraus!

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 11.11.2014, 15:52     Titel:
  Antworten mit Zitat      
Ich habe mal ein Beispiel geschrieben wie ich es mir vorstelle:

Code:

close
clc
t=[1 2 3 4 5 6 7 8];
d1=[7   7.2 7.6 7.7 7.6 7.1 7.9 8];
d2=[7.3 7.5 7.5 7.9 8   7.9 8.9 8.5];
plot(t, d1,'r',t, d2,'b')
pause(2)
[w, ix]=min(d2-d1);
plot(t, d1+w,'r',t, d2,'b')
 


Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
pescatore265
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 04.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2014, 16:47     Titel:
  Antworten mit Zitat      
Ich habe es mit deinen Werten einmal ausprobiert und mit denen funktioniert das ziemlich gut.
Problem bei meinen Kurven allerdings ist, dass die Vektoren nicht immer dieselbe Dimension haben müssen. Bei mir entstehen prozessbedingt Kurven mit unterschiedlich vielen Temperaturintervallen, also auch mit unterschiedlich vielen Stützstellen, sodass das einfache subtrahieren der Werte nicht funktioniert :/

Danke trotzdem vielmals !
Private Nachricht senden Benutzer-Profile anzeigen
 
pescatore265
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 04.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2014, 16:55     Titel:
  Antworten mit Zitat      
Zumal habe ich keine Werte zwischen den Stützstellen. Die Punkte sind in der Grafik nur durch Geraden verbunden ( plot-Befehl ) . Das erschwert das Ganze zusätzlich.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 12.11.2014, 09:09     Titel:
  Antworten mit Zitat      
Das Plotten macht nichts anderes als linear zu interpolieren. D.h. in dem Anwendungsfall mit nicht äquidistanten Stützstellen gilt es vorher z.B. mit INTERP1 zu interpolieren. Beide Zeitreihen auf die selbe Frequenz natürlich.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.