|
|
Mehrere Dateien einlesen und bearbeiten |
|
PH |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.01.2011, 00:27
Titel: Mehrere Dateien einlesen und bearbeiten
|
 |
Hi,
folgendes Problem: Ich muss mehrere Dateien mit Messdaten einlesen und diese dann bearbeiten.
Dies habe ich bisher mit einer Schleife und strcat bzw. num2str gelöst, wie hier gezeigt:
for i=1:2
load (strcat('Relaxationsversuch_kurz',num2str(i),'.TRA'));
end
Die Dateien sind dann als Double eingelesen.
Ich muss nun aber die einzelnen Spalten jeder Datei als Variable festsetzen und bearbeiten, also 1.Spalte der ersten Datei = S1, 1.Spalte der zweiten Datei = S2 usw.
Dabei komme ich aber nicht weiter. Vielleicht kann mir hier jemand helfen.
Mfg Paul[/b][/i]
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 04.01.2011, 00:40
Titel: Re: Mehrere Dateien einlesen und bearbeiten
|
 |
Hallo PH,
Oder:
Zitat: |
Ich muss nun aber die einzelnen Spalten jeder Datei als Variable festsetzen und bearbeiten, also 1.Spalte der ersten Datei = S1, 1.Spalte der zweiten Datei = S2 usw. |
Davon würde ich ausdrücklich abraten. Wenn Du bereits eine gute Datenstrukture hast, nämlich eine Matrix, wäre es eine unnötige Verkomplizierung, daraus umständlich einen Haufen separater Vektoren zu basteln, die dann auch noch einen Index im Namen tragen, wo er nur mit verwirrenden Tricks wieder verwendet werden kann.
Siehe hierzu:
http://matlab.wikia.com/wiki/FAQ#Ho......2C....2CA10_in_a_loop.3F
Ich würde also wärmstens empfehlen, nachdem ich hier und in anderen Foren viele dutzend Fragen darüber gelesen habe, wie man denn nun später automatisch auf A1, A2, ... zugreifen kann:
Das ist effizienter in der Laufzeit, Speichernutzung, und vor allem Programmier- und Debugzeit!
Gruß, Jan
|
|
|
PH |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.01.2011, 00:52
Titel:
|
 |
Hi Jan,
danke erstmal für die schnelle Antwort.
Verstehe ich das richtig, dass dann aus allen Dateien eine Matrix erstellt wird und ich dann auf die einzelnen Spalten zugreifen soll?
Problem könnte dann aber sein, dass die Messreihen unterschiedlich lang sind, d.h. die Spalten wären dann unterschiedlich lang...
Gruß,
Paul
|
|
|
PH |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.01.2011, 01:28
Titel:
|
 |
...Wäre dann die Nutzung von cell arrays besser geeignet?
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 05.01.2011, 01:42
Titel:
|
 |
Hallo PH,
Zitat: |
Verstehe ich das richtig, dass dann aus allen Dateien eine Matrix erstellt wird und ich dann auf die einzelnen Spalten zugreifen soll? |
Der Beispiel-Code, den ich gepostet hatte, liest erstmal immer nur ein File ein. Ich habe lediglich geraten, keine individuellen Namen für die einzelnen Spalten zu vergeben, weil man sich damit im Allgemeinen nur unnützen Ärger einhandelt.
Also wenn es sich um drei Spalten handelt, die man dann als "Time", "Position" und "Velocity" bezeichnet, ist das wohl noch übersichtlich genug. Aber 20 Spalten in "S1", "S2", ... umzuwandeln, erhöht die Komplexität bis zur Nicht-Debugbarkeit.
Zitat: |
...Wäre dann die Nutzung von cell arrays besser geeignet? |
Genau.
Wenn Du mehr Details von Deinem Programm zeigen möchtest, wären genauere Antworten möglich.
Gruß, Jan
|
|
|
HPA69 |

Forum-Anfänger
|
 |
Beiträge: 35
|
 |
|
 |
Anmeldedatum: 08.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.01.2011, 10:35
Titel:
|
 |
Moin,
ich hatte neulich das gleiche Problem, nur noch etwas komplizierter.
Am einfachsten ist für das spätere Datenhandling wirklich, wenn Du Dir einen struct anlegst den zum Beispiel T nennst und in T{1} dann deine jeweiligen Messwerte ablegst. Dann sehe die Messwerte für Messung 1 so aus. T{1}.time , T{1}.Position und T{1}.Velocity
|
|
|
PH |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.01.2011, 13:54
Titel:
|
 |
Hallo Jan,
danke für deine Hilfe - habe das Problem jetzt wie gesagt mit cell arrays gelöst. Musste erst herausfinden, dass man die einzelnen Spalten der Zellen auch ansprechen kann, danach war es nur noch Schreibarbeit.
Gruß,
Paul
|
|
|
|
|
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.
|
|