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

Eine bestimmte Kurve rauspicken

 

EB
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 11.12.13
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 12.12.2013, 00:13     Titel: Eine bestimmte Kurve rauspicken
  Antworten mit Zitat      
Hi Leute,

als Studentin, die an ihrer Abschlussarbeit sitzt, würde ich jede Unterstützung herzlichst begrüßen.
Die Graphik ist angehängt.

Wie ihr oben sehen könnt, gibt oben nur eine stabile blaue Kurve, die sich dem eigentlich erwarteten realen Kurvenverlauf (rot), sehr genau annähert.

Ich möchte nur diese Kurve betrachten.

Was muss ich tun?

Ich danke so sehr!!!! Und wünsche euch jetzt schon mal schöne Feiertage!

Feinster Gruß

Graphic_Distanz174cm.fig
 Beschreibung:

Download
 Dateiname:  Graphic_Distanz174cm.fig
 Dateigröße:  29.41 KB
 Heruntergeladen:  317 mal
Graphic_Distanz174cm.jpg
 Beschreibung:

Download
 Dateiname:  Graphic_Distanz174cm.jpg
 Dateigröße:  85.2 KB
 Heruntergeladen:  512 mal

_________________

Danke für die Unterstützung
Private Nachricht senden Benutzer-Profile anzeigen


Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 18.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 12.12.2013, 05:24     Titel:
  Antworten mit Zitat      
Hallo EB,

Du könntest mit Paint die anderen Kurven übermalen.

Was meinst du mit betrachten? Die Daten der einen Kurve erhalten? Nur die eine Kurve plotten? Oder etwas anderes?

Wo kommt der Plot her? Wie sehen die zugehörigen Daten aus? Was hast du schon probiert?

Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
EB
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 11.12.13
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 12.12.2013, 13:32     Titel:
  Antworten mit Zitat      
Hi Seban,

Danke für die Antwort.
Ich will nur die Daten Plotten, die am kleinsten sind, das ist die Kurve, die ganz oben ist, weil die Zahlen unter 0 liegen bzw. negativ sind.

Ich habe eine Reihe an "Ergebnissen" (Datei ist hochgeladen für dich) und eine Schleife wäre hier recht hilfreich. Sie soll mir nur die Kurve ausspucken, die jeweils ganz oben ist. Bzw. soll sie mir immer nur die KurveN ausspucken, die zwischen 0 und -300 liegt.

Sobald du die Datei Ergebnisse anklickst, öffnen sich mehrere Kategorien, wir bleiben nur unter Metal und betrachten dort jeweils alle einzelnen XY-Ergebnisse.

Zum Plotten habe ich das Skript "test" hochgeladen. Das bezieht sich speziell auf X6Y9.

Wie kann ich eine Art Schleife bauen für X(i)Y(j), damit alle Positionen bearbeitet werden können und je Position geplottet wird?

Danke soooooo sehr

Ergebnisse.zip
 Beschreibung:

Download
 Dateiname:  Ergebnisse.zip
 Dateigröße:  14.61 MB
 Heruntergeladen:  483 mal
test.m
 Beschreibung:

Download
 Dateiname:  test.m
 Dateigröße:  636 Bytes
 Heruntergeladen:  299 mal

_________________

Danke für die Unterstützung
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 18.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 13.12.2013, 01:06     Titel:
  Antworten mit Zitat      
Hi EB,

So kannst du nur die Daten zw. 0 und 300 plotten (hattest du mit xBest, yBest quasi schon):
Code:
load('Ergebnisse.mat');
x = Radar.Metal.X6Y9.data(:,1);
y = Radar.Metal.X6Y9.data(:,2);

log_y = (-300 < y & y < 0); % logischer Vektor: 1 wenn Wert im Bereich 0-300, sonst 0
y_neu = y(log_y);   % enthält nur noch die Werte im Bereich 0-300
x_neu = x(log_y);   % zugehörige x

plot(x_neu, y_neu, '.');
hold on;
grid minor;
td = [0 x(end,1)];
xd = [-300 -300];
plot(td,xd,'r','LineWidth',3)



So kannst du alle 150 Datenreihen für den Bereich 0 < y < 300 plotten (VORSICHT: Es werden beim Ausführen 150 figures geöffnet):
Code:
load('Ergebnisse.mat');

ii = 1;
for ix = 1:10
    for iy = 1:15
        name    = ['X', num2str(ix), 'Y', num2str(iy)];
        x       = Radar.Metal.(name).data(:,1);
        y       = Radar.Metal.(name).data(:,2);
       
        log_y = (-300 < y & y < 0); % logischer Vektor: 1 wenn Wert im Bereich 0-300, sonst 0
        y_neu = y(log_y);   % enthält nur noch die Werte im Bereich 0-300
        x_neu = x(log_y);   % zugehörige x

        figure;
        plot(x_neu, y_neu, '.');
        hold on;
        grid minor;
        td = [0 x(end,1)];
        xd = [-300 -300];
        plot(td,xd,'r','LineWidth',3)
        title(name);
       
        ii = ii+1;
    end
end


Hilft das weiter?

Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 18.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 13.12.2013, 07:13     Titel:
  Antworten mit Zitat      
Anmerkung zur for-Schleife: ii wird nicht benötigt, habe ich vergessen zu löschen.
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
EB
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 11.12.13
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 13.12.2013, 23:09     Titel:
  Antworten mit Zitat      
Super Seban, Danke dir!

sieht gut aus. Ich weiß nicht warum, nur bei td = [0 x(end,1)] wollte er nicht und hat gesagt, "Attempted to access x(0,1); index must be a positive integer or logical. Error in Final_Plott_Metal (line 15) td = [0 x(end,1)];".

Deswegen habe ich im Command Window nach td geschaut.

td=[0 7969105];

somit funktioniert es Wink

Danke Seban und Freitag der 13. war somit ein Glückstag!
_________________

Danke für die Unterstützung
Private Nachricht senden Benutzer-Profile anzeigen
 
EB
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 11.12.13
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 13.12.2013, 23:10     Titel:
  Antworten mit Zitat      
habe also statt x(end,1) für die Spaltenangabe von td direkt den Wert 7969105eingesetzt!
_________________

Danke für die Unterstützung
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 18.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 14.12.2013, 05:32     Titel:
  Antworten mit Zitat      
Gern geschehen.

EB hat Folgendes geschrieben:
bei td = [0 x(end,1)] wollte er nicht und hat gesagt, "Attempted to access x(0,1); index must be a positive integer or logical. Error in Final_Plott_Metal (line 15) td = [0 x(end,1)];".

Dh. dass x ein Vektor der Länge 0 ist, sprich leer. Darauf kann man natürlich nicht zugreifen. Ich hab aber gerade mal geschaut, wenn ich das von mir gepostete zweite Skript laufen lasse, ist x nie leer. Irgendwas musst du also geändert haben, sei es am Skript oder an den Daten.


EB hat Folgendes geschrieben:
habe also statt x(end,1) für die Spaltenangabe von td direkt den Wert 7969105eingesetzt!

Ob das eine gute Idee ist? Der letzte Wert in deinen x ist ja nicht jedes mal 7969105. Ganz im Gegenteil, bei mir liegt x(end) zw. 14203603 und 17539345 und ist kein mal 7969105.

Schau also lieber noch mal nach, ob in deinem Skript passiert was du dir vorstellst.

Grüße,
Seban
_________________

Richtig fragen
Debugging
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.