|
|
|
Mehrere Dateien mit fopen einlesen |
|
| Manou_§ |

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 10.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.03.2012, 00:10
Titel: Mehrere Dateien mit fopen einlesen
|
 |
Hallo zusammen,
ich möchte mit dem Befehl fopen mehrere dateien öffnen, bsp. durch eine for schleife und die 1. und 2. Spalte holen, die daten sind '.lvm' , nachträglich in mehrere Matizen reinlegen/abspeichern.
die Dateien sind so genannt:
test_1
test_2
...
test_10
und nun habe ich wie folgend den Code aufgebaut, es hat leider nicht funktioniert .
Ich brauche eure Hilfe die schleife im gang zu bringen ,oder einen neuen Vorschlag die Daten auf einmal zu lesen, Danke.
Gruß,
Manuel
|
|
|
|
|
|
| Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 06.03.2012, 07:15
Titel:
|
 |
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 06.03.2012, 12:28
Titel: Re: Mehrere Dateien mit fopen einlesen
|
 |
Hallo Manou_§,
Ein genereller Ratschlag:
"hat leider nicht funktioniert" ist keine gute Beschreibung des Problems. Es wäre besser, wenn Du erklärst, was passiert und was Du statt dessen erwartest.
Letzteres hast Du gemacht.
In "fopen('test {index}.lvm','r');" wird der Substring '{index}' einfach als String interpretiert. Ein Einsetzen des Wertes von [index] geschieht hier nicht. NUM2STR (siehe Winkows Antwort) oder SPRINTF helfen hier weiter.
Gruß, Jan
|
|
|
|
| Manou_§ |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 10.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.03.2012, 15:39
Titel:
|
 |
Hallo Jan,
Danke Winkow und Jan für eure hilfreiche Ratschläge, es hat gekllapt .ich konnte die Daten von den test_files lesen.
du hast recht Jan, tatsächlich durch M{index} werden die Daten als cell interpretiert und nicht als arrays , jetzt habe ich ein weitere Problem, ich möchte nämlich die eingelesene werte bearbeiten, bsp. Kommas durch punkte ersetzen...
ich bekomme diese Error:
"Error using strrep
Cell elements must be character arrays."
was bedeutet das ?
daten{index} = str2double(M{index});
M{1,1}{1,1}
Danke,
Gruß,
Manuel
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 07.03.2012, 17:53
Titel:
|
 |
Hallo Manou_§,
Die Fehlermeldung ist eigentlich klar: Die Cell darf nur Strings enthalten, damit STRREP sie verarbeiten kann. Also enthält sie auch andere Werte.
Was ist den "ein" in Deinem Code?
Gruß, Jan
|
|
|
|
| Manou_§ |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 10.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.03.2012, 20:13
Titel:
|
 |
Hi Jan,
ok, das ich richtig, die cells erhalten auch werten die von den test_index eingelesen wurden, mit 'ein' ist nur einlesen gemeint, hier der Code und die 4 erste test dateien, versuche mal bei Dir , vielleicht klappt es, endlich soll die Matrix M aus der 1., und 2. Spalte von den jeweiligen test_1 bis test_4 bestehen
Danke,
Gruß,
Manou
| Beschreibung: |
|
 Download |
| Dateiname: |
test dateien.zip |
| Dateigröße: |
1.63 KB |
| Heruntergeladen: |
390 mal |
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 07.03.2012, 20:58
Titel:
|
 |
Hallo,
MATLAB ist sehr konsequent. Wenn ein Code auf einem Rechner nicht läuft, wird er auch auf einem anderen Rechner nicht laufen.
Das Problem hier:
einlesen{index} ist selbst noch ein Cell Array, das wiederum zwei Cell Arrays enthält; das kannst du im Workspace leicht überprüfen.
Du kannst dir das Leben deutlich einfacher machen, indem du die Dateien zunächst in Dateien mit Punkt als Dezimaltrennzeichen konvertierst und dann die Daten als Double einliest.
Grüße,
Harald
|
|
|
|
|
|
|
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.
|
|