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

Char2str?

 

Phil42
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 27.02.10
Wohnort: Berlin
Version: 7.9.0.529 (R2009b)
     Beitrag Verfasst am: 27.02.2010, 20:47     Titel: Char2str?
  Antworten mit Zitat      
Hallo zusammen!

Das ist mein erster Post hier, also bitte kleinere Formfehler übersehen Wink

Ich war ne Weile auf der Suche nach einer Möglichkeit aus einem Char-Array Zahlen auszulesen. Wie ich zu diesem Problem komme möchte ich kurz Schildern.

Ich habe eine Datei, in der unregelmäßige Informationen stehen, welche als Eingabefunktion für ein Simulationsprogramm dienen, welches noch über RLAB/C++ funktioniert.
Die Datei ist größtenteils als Paramterdatei aufgebaut, also zb "nm.sec = 2". Ich möchte nun bestimmte Zeilen auslesen und die Informationen daraus neben einen Graphen setzen. Die Datei ist so 150-200'Zeilen lang und ich benötige nur ein paar, gehe also mit einer Schleife ran und lese mir die entsprechenden Zeilen aus und stecke sie in ein Cell-Array:
Code:

function [string] = Read_lines_from_file(file, startline, endline);
% This function reads a number of lines from the given file.

fid = fopen(file, 'rt');
k = 1;
for n = 1:endline
    str = fgetl(fid);
    if n >= startline
        string{k} = str;
        k = k + 1;
    end
end
fclose(fid);
 

Nun das Problem: Weder fgetl noch fgets gibt mir einen String aus, sondern ein Char. Wenn ich jetzt also die sscanf-funktion darüberlaufen lasse, um die Zahlen auszulesen und Variablen zuzuordnen, funktioniert dies nicht, da alle Zahlen als string/char erkannt werden.

Ich habe jetzt irgendwie versucht aus dem Char-Array einen String zu machen oder mit Schleifen versucht die entsprechenden Zahlen rauszufiltern, was aber etwas unpraktikabel werden könnte (Programmlaufzeit, wobei das bei meinen Dateigrößen noch nicht so wichtig ist) und zudem auf das Problem stößt, dass "str2num" auch Satzzeichen und dergleichen als "0+i" interpretiert.

Bevor ich jetzt einen umständlichen Workaround schreibe, möchte ich also mal Fragen, ob es nicht doch eine Möglichkeit gibt entweder direkt einen String aus der Datei auszulesen, oder ein char(array) in einen string umzuwandeln. Dann lässt sich auch bequemer nach bestimmten periodischen Folgen suchen und das auslesen wird einfach unglaublich bequemer.

Danke im Voraus!
Philipp
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.