|
|
Datei einlesen, sortieren und Werte schematisch abarbeiten |
|
Dusty.2 |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 31.01.13
|
 |
|
 |
Wohnort: Osnabrück
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.01.2013, 10:57
Titel: Datei einlesen, sortieren und Werte schematisch abarbeiten
|
 |
|
 |
|
Hallo Leute,
ich sitze gerade an einem Problem, ich soll einen Laborversuch auswerten.
Die Dateien liegen als .txt-Datei vor in vier Spalten und X Zeilen.
Eingelesen habe ich die .txt-Datei mit load in eine x,4-Matrix. Dann habe ich mit sort alles nach meinem Wunsch sortiert - zwei Spalten sind konstant, die anderen zwei variabel. Die konstanten Spalten kehren immer wieder.
Ich brauche jetzt die Steigungsdreiecke (Druckgradienten), das wollte ich einfach mit der diff-Funktion lösen (funktioniert bei Testwerten auch ganz gut), allerdings in Abhängigkeit von einer der variablen Spalten. Also wenn sich die Spalte ändert, dann soll er ab diesem Punkt wieder neu anfangen zu rechnen, weil es ja eine ganz andere Kurve ist.
Ich hoffe es ist einigermaßen verständlich. Wenn ich nachher zu Hause bin kann ich die .txt mal hochladen, damit man sich das besser vorstellen kann.
Mein Ansatz wäre jetzt gewesen das mit einer while-Schleife zu lösen und in der while-Schleife läuft dann eine for-Schleife.
Etwa "while A(:;3) == 5" und dann die for-Schleife in der die eigentliche Differenzierung stattfindet, bis Spalte #3 nicht mehr 5 ausgibt. Dann aber beim nächsten Wert (welche der nächsten Kurve entspricht) weitermacht.
Wie würdet ihr das lösen? Ansätze genügen mir, ich bin zwar frisch auf dem Gebiet, aber da ich in nächster Zeit viel auf Matlab zurückgreifen möchte, möchte ich mir die Sachen selbst erarbeiten.
Servus!
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 31.01.2013, 13:47
Titel:
|
 |
Hallo,
ich würde versuchen, mir die Kurvenabschnitte mit Logical Indexing zu extrahieren und dann als Blöcke zu verarbeiten, z.B. eben mit diff.
Grüße,
Harald
|
|
|
Dusty.2 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 31.01.13
|
 |
|
 |
Wohnort: Osnabrück
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.02.2013, 15:16
Titel:
|
 |
Harald hat Folgendes geschrieben: |
Hallo,
ich würde versuchen, mir die Kurvenabschnitte mit Logical Indexing zu extrahieren und dann als Blöcke zu verarbeiten, z.B. eben mit diff.
Grüße,
Harald |
Servus Harald,
danke für den Tipp. Ich will das ganze später noch per Java realisieren und habe das ganze jetzt mit einer Schleife gelöst. Da meine Messwerttabelle nicht so lang ist, lässt sich das mit der Rechenzeit noch vertreten.
Ich habe jetzt ein neues Problem, ich habe die Werte nach einer Spalte sortiert und würde nun gerne aus jeder Spalte mit gleichem Wert (z.B. 5bar) eine neue Untermatrix erstellen (mit den dazugehörigen anderen Spalten). Gibt's da eine Funktion in Matlab, die erkennt, ob mein Druck jetzt von 5.0bar auf 5.1bar steigt, so dass ich mit der Antwort dann in der Schleife an dieser Stelle wieder einsteigen kann (um es zu extrahieren)?
Grüße!
Edit: Ich mein jetzt natürlich neben dem LogicalIndexing
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.02.2013, 11:19
Titel:
|
 |
Hallo,
du kannst natürlich irgendwie elementweise durchgehen, aber Logical Indexing bzw. find ist schon der Weg, den man hier normal geht.
Grüße,
Harald
|
|
|
Dusty.2 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 31.01.13
|
 |
|
 |
Wohnort: Osnabrück
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.02.2013, 16:26
Titel:
|
 |
Harald hat Folgendes geschrieben: |
Hallo,
du kannst natürlich irgendwie elementweise durchgehen, aber Logical Indexing bzw. find ist schon der Weg, den man hier normal geht.
Grüße,
Harald |
Hi Harald!
Ich habe mich jetzt noch mal intensiver mit der Indizierung auseinandergesetzt (eine gute Dokumentation dazu gefunden) und es jetzt mit "find" hinbekommen.
Vielen Dank und viele Grüße.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|