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

String auf .txt auslesen + Anfänger = Error

 

chackyo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2013, 12:39     Titel: String auf .txt auslesen + Anfänger = Error
  Antworten mit Zitat      
Hey Leute!

Ich bin neu zu Matlab gekommen, wegen Studium, hab bis jetzt 16 Stunden Matlab gehabt und finde mich eigtl. gut zurecht, aber ich habe ein Problem bei einer Auslesefunktion.
Ohne der kann ich im Projekt nicht weitermachen -.-

Und zwar hab ich in einer .txt, auf der ich zugreifen kann, Buchstaben.
Schaut in etwa so aus:

ABCDEFGH
AAABBBAA
XYZBCDAA

(alle sind gleich lang!)

Die Buchstaben sind in einer Reihe ohne Leerzeichen geschrieben.

Und ich soll jetzt mal ne Funktion schreiben, die die Strings (nutze ich hier das Wort "string" richtig???) ausgibt, so dass ich die dann weiterverarbeiten kann. (Ich will z.B. die summe aller "A"s an der letzten stelle auslesen...)

Aber nun zum Punkt.

Ich habe mittels
Alles=fscanf([eingelesene Text Datei], '%s', [Anzahl_der_Zeilen])

das ausgegeben...

Schaut dann so aus:
ABCDEFGHAAABBBAAXYZBCDAA

Ist nicht schön.

Außerdem hab ich bei einem anderen Versuch es geschafft, mittels zeros eine Matrix zu erstellen und diese einzeln ausgelesenen Buchstaben!!!! mittels for-schleife reinzuschreiben.
Funktioniert auch theoretisch, allerdings werden die Buchstaben in Zahlen umgewandelt, was auch nicht ideal ist.


Ich habe gehört, es soll dann aber so oder so ähnlich aussehen von Kollegen:

alles=
ABCDEFGH
AAABBBAA
XYZBCDAA

Einfach mehr oder weniger wie in der Text Datei, aber ich kann dann einfach damit weitermachen (einzelne stellen auslesen, etc.)

Ich bin mir sicher dass ich irgendwo etwas übersehen habe, sodass ich nicht auf das gewünschte Ergebnis komme.
Aber was?

Danke im Voraus!


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.10.2013, 13:10     Titel:
  Antworten mit Zitat      
Hallo,

mit textscan dürftest du dir leichter tun:

fid = fopen('datei.txt');
data = textscan(fid, '%s');
data = data{1};
fclose(fid);

Falls das nicht funktioniert, bitte einen Ausschnitt der Datei anhängen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
chackyo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2013, 22:45     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

mit textscan dürftest du dir leichter tun:

fid = fopen('datei.txt');
data = textscan(fid, '%s');
data = data{1};
fclose(fid);

Falls das nicht funktioniert, bitte einen Ausschnitt der Datei anhängen.

Grüße,
Harald


Hey! Danke erstmal für deine Antwort und dein Bemühen.
Der Code hat leider nicht funktioniert.

Hab aber mich jetzt gerade nochmal hingesetzt und herausgefunden wies geht:

Und zwar hab ich hier unbewusst einen Fehler eingepflanzt in diese Zeile die ich hier reingeschrieben habe.

Alles=fscanf([eingelesene Text Datei], '%s', [Anzahl_der_Zeilen])

Ich habe hier das [Anzahl_der_Zeilen] in eckige Klammern geschrieben.
Damit hab ich aussagen wollen, dass die Anzahl der Zeilen ausgelesen werden sollen.
Bei meinem Code hab ich das nicht gemacht; bin aber nun draufgekommen, dass man da auch tatsächlich eckige Klammern reinschreiben kann, um gleich eine Matrix zu machen...

Mein Code schaut jetzt so aus und funktioniert (= als Matrix ausgegeben, mit Buchstaben!)

Alles=fscanf(eingelesene Text Datei, '%s \n', [Anzahl_der_Zeilen,1])
Erstellt eine für mich perfekte Matrix

ich kann dann mit
test=Alles(3,3)
den dritten Buchstaben in dritten Zeile sehr einfach auslesen.


Habe sicherlich drei Stunden an der verdammten Zeile gesessen, will Deinen Code probieren, und da fällt mir eine Möglichkeit ein, und das funktioniert dann tatsächlich.

Danke trotzdem vielmals.
Gruß!
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.10.2013, 23:19     Titel:
  Antworten mit Zitat      
Hallo,

beim nächsten Mal bitte einfach einen Ausschnitt der Textdatei anhängen - und wenn etwas nicht funktioniert, dann bitte schreiben, was nicht funktioniert.

Grüße,
Harald
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.