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

Kommagetrennte ASCII-Werte einlesen

 

Christian85
Forum-Anfänger

Forum-Anfänger



Beiträge: 37
Anmeldedatum: 01.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.02.2010, 13:13     Titel: Kommagetrennte ASCII-Werte einlesen
  Antworten mit Zitat      
Moin zusammen!

Ich stehe vor folgendem Problem:
Ich habe eine Textdatei (ich habe ein Beispiel mit angehängt), die ich einlesen will. Diese enthält kommagetrennte Werte und alle paar Werte einen Zeilenumbruch.

Die Werte sollen nach dem Einlesen ein eindimensionales Array ergeben.

Das Problem: Die Kommata werden als Spaltentrenner erkennt - ein Einlesen ergibt ein 200x9 - Array (die letzte Spalte 0, weil in der Textdatei hinter jeder Zeile ein Komma steht). Die Zeilenumbrüche werden dementprechend als Zeilentrenner erkannt.

Kann ich das irgendwie umgehen?

Gruß, Christian

test.txt
 Beschreibung:

Download
 Dateiname:  test.txt
 Dateigröße:  19.81 KB
 Heruntergeladen:  523 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan*
Forum-Century

Forum-Century


Beiträge: 178
Anmeldedatum: 06.11.09
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 09.02.2010, 14:01     Titel:
  Antworten mit Zitat      
Hi,

da du nicht schreibst mit welcher Funktion du die Textdatei einliest, kann man schwer konkrete Tipps geben. Aber spricht denn irgendwas dagegen die 200x9 Matrix mit reshape bzw.
Code:
in eine eindimensionale Matrix umzuwandeln?

Gruß Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Christian85
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 37
Anmeldedatum: 01.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.02.2010, 14:47     Titel:
  Antworten mit Zitat      
Hallo!

Momentan habe ich das mit
Code:
dat = dlmread('test.txt', ',')

gelöst, aber der kennt auch nur Spaltendelimiter und nimmt den Zeilenumbruch automatisch als Trennzeichen für die Zeile.

...lange Pause beim Schreiben...

Ah, jetzt habe ich auch eine Variante - diesmal mit Textscan:
Code:

clear all
fid = fopen('test.txt', 'r');

bla = textscan(fid, '%f', 'delimiter', ' ,');

fclose(fid);

array = bla{1};

for i = 1:length(array)
    if isnan(array(i))
        array(i) = [];
    end
end
 


Geht sicherlich noch eleganter, funktioniert aber schonmal

Gruß, Christian
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 - 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.