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 sortieren

 

madmax20
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 31.05.17
Wohnort: ---
Version: R2015b
     Beitrag Verfasst am: 23.06.2017, 10:51     Titel: Daten sortieren
  Antworten mit Zitat      
Grüß euch

Bin gerade mit dem Matlab Code den ich schreibe in ziemlichen Zeitdruck und habe nun folgendes Problem:
Ich habe einen Druck über einen bestimmten Winkelabschnitt.
Nun habe ich die maximalen und minimalen Peaks der Druckkurve mit dazugehörigem Winkel ermittelt.

Das Problem ist nun, dass durch bestimmte Einschränkungen die ich gesetzt habe teilweise 2-3 Maxima/Minima nebeneinander liegen ohne das sich dazwischen ein Minima/Maxima befindet.
Somit kann ich nicht mehr die Amplitude bestimmen.

Nun hab ich die Winkelwerte (Ausschnitt)

W1...Winkel zu den maximalen Peaks
W2....Winkel zu den minimalen Peaks

i W1 W2
1 330,62 331,29
2 332,10 331,92
3 334,27 335,37
4 336,33 339,94
5 336,97 345,84
6 338,67 348,11
7 342.53 350,66

wie man erkennen kann sind W2(1) und W2(2) nebeinenander ohne einen W1 Wert dazwischen.
Das selbe trifft auch auf W1(2) und W1(3); W1(4),W1(5) und W1(6) zu

ich will jetzt die Winkelwerte unter der Bedingung:
W1(i)<W2(i) und W1(i+1)>W2(i)

Somit sollte raus kommen:

i W1 W2
1 330,62 331,29
2 332,10 335,37
3 336,33 339,94
4 342.52 345,84

Wie realisiere ich das nun?

Hab mich mit "for" rum geplagt aber weiß nicht wie ich es realisieren soll, dass die Schleife erkennt: da ist ein Wert nachgerückt also alles noch mal testen

Würde die "sortierten" Werte in zwei neuen Vektor speichern da ich sonst ja ein Problem mit den Dimensionen der Ausgangsvektoren bekomme wenn ich da Werte raus lösche.



Hoffe ihr könnt mir helfen.

LG
Madmax

Edit: W2 gehört natürlich über die rechte Winkel Spalte...weiß nur leider nicht wie ich das da drüber bekomme Wink
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: 24.06.2017, 15:01     Titel: Re: Daten sortieren
  Antworten mit Zitat      
Hallo madmax20,

Eine Antwort zu schreiben wäre einfacher, wenn Du die Daten so postest, dass man sie per Copy&Paste verwenden kann. Die Kommas als Dezimal-Trenner sind da sehr hinderlich.

Das ist schonmal der perfekte Ansatz:
Zitat:
W1(i)<W2(i) und W1(i+1)>W2(i)

Für die letzte Zeile kann W1(i+1) nicht abgefragt werden, darum wird sie immer akzeptiert, oder? Dann:
Code:
match = and(W1(1:end-1) < W2(1:end-1), ...
               W2(1:end-1) < W1(2:end));
W1_cleaned = W1(match);
W2_cleaned = W2(match);

Passt das, oder muss es mehrfach wiederholt werden bis sich die werte nicht mehr ändern?

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

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 31.05.17
Wohnort: ---
Version: R2015b
     Beitrag Verfasst am: 27.06.2017, 14:00     Titel:
  Antworten mit Zitat      
Hallo Jan!
Danke für die schnelle Antwort.
Tut mir leid das ich die Werte so reingetippt hab.
Bin neu hier und hab da garnicht dran gedacht.

Der von dir vorgeschlagene Code beginnt schon einmal gut zu arbeiten, nur leider bricht er in meinem Fall bei W1(3)=334.27 und bei W2(3)=335.37 ab.


Für Zeile 4 hat match den Wert 0 (weil die Bedingung natürlich nicht passt).
Jetzt sollte er theoretisch 338.67 aus Zeile 6 auf 5 nachreihen damit die Bedingung in Zeile 4 wieder passt.
Das wäre die Idee dahinter und ich glaube damit wirds etwas tricky.
Vor allem weil er dann sicher mit den Dimensionen nicht mehr zurecht kommt.

Code:
W1 = [330.62; 332.10; 334.27; 336.33; 336.97; 338.67; 342.53]
W2 = [331.29; 331.92; 335.37; 339.94; 345.84; 348.11; 350.66]
 
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: 27.06.2017, 20:24     Titel:
  Antworten mit Zitat      
Hallo madmax20,
Zitat:
Das wäre die Idee dahinter und ich glaube damit wirds etwas tricky.
Vor allem weil er dann sicher mit den Dimensionen nicht mehr zurecht kommt.
Ich kann Dir nicht folgen. Probiere es mal aus, poste den Code, die Fehlermeldung und was Du als Ergebnis erwartest.

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 - 2024 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.