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

Txt Datei als Matrix importieren und Speichern

 

Markusius
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 17.06.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2019, 12:48     Titel: Txt Datei als Matrix importieren und Speichern
  Antworten mit Zitat      
Hallo zusammen,

ich hoffe ihr könnt mir helfen:
Ich muss bei einer txt Datei bestimmte Spalten mit Werten importieren.
Da das einzeln sehr lange dauern würde bin ich auf der Suche nach einer Funktion mit der man immer 2 Spalten zusammen importiert, dabei nummeriert und die importierte Datei dann mit dem gleichen namen speichert.
Also erst die 1. und 2. Spalte, dann die 3. und 4. Spalte usw.
Die bennenung sollte dann folgendermaßen aussehen:
Feststehende Bezeichnung für alles.durchlaufende Nummer

Wahrscheinlich gibt es dafür eine schnelle Möglichkeit, gefunden habe ich die allerdings noch nicht und komme auch von selbst nicht weiter.

Vielen Dank im Vorraus
LG Markus

Test2.txt
 Beschreibung:
Das ist eine Beispielhafte Datei

Download
 Dateiname:  Test2.txt
 Dateigröße:  154.09 KB
 Heruntergeladen:  241 mal
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: 19.06.2019, 11:00     Titel: Re: Txt Datei als Matrix importieren und Speichern
  Antworten mit Zitat      
Hallo Markusius,

Text-Dateien haben den großen Nachteil, dass man nicht einfach einzelne Spalten importieren kann. Um eine Spalte zu identifizieren, muss man alle Zeilen importieren.

Zitat:
Da das einzeln sehr lange dauern würde...

Das tut es. Es gibt keinen Weg das abzukürzen. Darum sollte man nur dann mit Text_Files arbeiten, wenn es unbedingt notwendig ist, z.B. wenn es von einem Mensch editiert werden soll.

Zitat:
bin ich auf der Suche nach einer Funktion mit der man immer 2 Spalten zusammen importiert, dabei nummeriert und die importierte Datei dann mit dem gleichen namen speichert.

Was soll dabei nummeriert werden? Was bedeutet "immer 2 Spalten zusammen importieren"? Du möchtest die Original-Datei überschreiben? Sicherer ist es ein neues File zu erzeugen.

Zitat:
Also erst die 1. und 2. Spalte, dann die 3. und 4. Spalte usw.

Dann wirst du nicht "mit dem gleichen Namen speichern" hinbekommen, denn das würde die Files ja mehrfach überschreiben.

Zitat:
Die bennenung sollte dann folgendermaßen aussehen:
Feststehende Bezeichnung für alles.durchlaufende Nummer

Das ist nicht klar. Was ist "für alles"? Durchlaufende Nummer?

Zitat:
Wahrscheinlich gibt es dafür eine schnelle Möglichkeit, gefunden habe ich die allerdings noch nicht und komme auch von selbst nicht weiter.

Was wäre der Vorteil das jetzige File in mehrere Einzel-Files aufzuteilen?
Es wäre deutlich effizienter das gesamte File einzulesen und als Binär-File abzuspeichern. Dann ist das Einlesen einzelner Spalten leicht mit fread oder memmapfile umsetzbar.

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

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 17.06.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.06.2019, 13:44     Titel:
  Antworten mit Zitat      
Hab eine Txt Datei mit vielen Messreihen. In Excel könnte ich das relativ schnell auch speichern.

In einem anderen Matlab Programm kann ich diese Messreihen weiter verarbeiten wenn ich diese als Matrix mit zwei Spalten speichere (die Erste Spalte enthällt die x-Koordinaten, die zweite Spalte enthällt die jeweiligen y-Koordinaten.

Gerade klicke ich auf "Home" -> "Import Data" -> wähle die txt Datei aus -> Markiere die ersten zwei Spalten -> Benenne die Datei mit fortlaufender Nummer -> Drücke auf "import selection"

Dann wähle ich die Datei im Workspace aus, klicke auf "save as" und tippe wieder die vorher gewählte Nummer ein um eine 2 Spalten Matrix zu speichern.

Das alles wiederhole ich 25 mal um eine txt Datei vollständig als Matrixen abgespeichert zu haben.

Im Anschluss kann ich diese gespeicherten Matlab Dateien nach und nach durch ein Programm jagen um meine Ergebnisse zu erhalten.



Aber der ganze Import und Speichern Arbeitsschritt muss doch irgendwie schneller gehen, da ich weder Zeit noch Lust habe Wochen daran zu sitzen.
Ich weiß da echt nicht weiter und habe keine Ahnung wie ich das ohne irgendwelche Programmierkenntnisse oder so hinbekommen soll.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.06.2019, 17:00     Titel:
  Antworten mit Zitat      
Hallo,

wie groß ist die echte Datei denn?

Wenn sie komplett in den Speicher passt, dürfte das am schnellsten sein:

Code:
data = dlmread('Test2.txt');
for k = 1:size(data,2)/2
    dataSmall = data(:,2*k-1:2*k);
    save(['data' num2str(k)], 'dataSmall')
end


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.