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

einlesen von daten

 

dima

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2008, 12:52     Titel: einlesen von daten
  Antworten mit Zitat      
Hi leute!
ich habe folgendes problem: ein fortran fea prozessor spuck nach der berechnung eine datei mit allen ergebnissen raus. und zwar alle nacheinander und das je nach dem für unterschiedliche anzahl von zwischenschritten. diese gibt man natürlich vor, aber da ist eine andere geschichte.
ich versuche nun seit mehr als einer woche etwas zu basteln, um diese daten für einen post prozessor aufzubereiten, aber irgendwie komme ich nicht weiter: entweder wird alles unstrukturiert eingelesen oder es fehlen einige daten zwischendrin. ab und zu werden einfach nur zellen angezeigt, in der form [1x77] wo eigentlich daten stehen sollten.
wäre euch unendlich dankbar für eure vorschläge, denn ich bin moment schon am verzweifeln.


dima

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2008, 12:56     Titel: Re: einlesen von daten
  Antworten mit Zitat      
dima hat Folgendes geschrieben:
Hi leute!
ich habe folgendes problem: ein fortran fea prozessor spuck nach der berechnung eine datei mit allen ergebnissen raus. und zwar alle nacheinander und das je nach dem für unterschiedliche anzahl von zwischenschritten. diese gibt man natürlich vor, aber da ist eine andere geschichte.
ich versuche nun seit mehr als einer woche etwas zu basteln, um diese daten für einen post prozessor aufzubereiten, aber irgendwie komme ich nicht weiter: entweder wird alles unstrukturiert eingelesen oder es fehlen einige daten zwischendrin. ab und zu werden einfach nur zellen angezeigt, in der form [1x77] wo eigentlich daten stehen sollten.
wäre euch unendlich dankbar für eure vorschläge, denn ich bin moment schon am verzweifeln.


saida2.txt
 Beschreibung:
das ist so eine output-datei

Download
 Dateiname:  saida2.txt
 Dateigröße:  549.59 KB
 Heruntergeladen:  822 mal
 
Schrank
Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 10.07.08
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 10.09.2008, 11:26     Titel:
  Antworten mit Zitat      
Hallo dima,
also etwas elegantes will mir auch nicht einfallen, obwohl das sicherlich eigentlich ein Standardproblem ist. Aber das hier funktioniert soweit:
Code:
clc;
clear all;
fid = fopen('H:\saida2.txt');
k = 1;
Data = zeros(1,3);
Zaehler = 1;
while 1
    Daten{Zaehler} = fgetl(fid);

    if Daten{Zaehler} == -1
        break
    else
        try
            Data(k,:)=(sscanf(Daten{Zaehler}, '%f %f %f'))';
            if isequal(Data(k), '')==0
                k = k + 1;
            end
        catch

        end
    end

    Zaehler = Zaehler + 1;
end
fclose(fid);
clear fid


Gruß Schrank
Private Nachricht senden Benutzer-Profile anzeigen
 
dima
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 09.09.08
Wohnort: Kirn
Version: R2008a
     Beitrag Verfasst am: 10.09.2008, 17:11     Titel:
  Antworten mit Zitat      
danke sehr
ich ich werds mal ausprobieren. Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
dima
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 09.09.08
Wohnort: Kirn
Version: R2008a
     Beitrag Verfasst am: 02.10.2008, 23:45     Titel:
  Antworten mit Zitat      
hat vielleicht jemand ne idee, wie ich gleich bei dem code die nX4 matrizen rausangeln kann? benutze derzeit 2 routinen um alle matrizen die ich brauche rauszuholen, also die nX3 und die nX4, aber das dauert halt. waer super wenn alles in einem durchgang klappen wuerde.
danke euch
_________________

"Man muss gelehrt sein, um Einfaches kompliziert sagen zu koennen; und weise, um Kompliziertes einfach sagen zu koennen." Charles Tschopp
Private Nachricht senden Benutzer-Profile anzeigen
 
HaggeL
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 06.10.08
Wohnort: Erlangen
Version: 7.5.0 (R2007b)
     Beitrag Verfasst am: 13.10.2008, 12:28     Titel:
  Antworten mit Zitat      
Hallo Leute,

erst mal vielen Dank für das Script. Auch wenn ich nicht danach gefragt habe, hat es mir sehr weitergeholfen.

Nun habe ich aber noch eine Frage:
Ich habe ein Datei mit verschiedenen Datensätzen, die sich durch die Anzahl der Zeilenelemente unterscheiden.

Ein großer Block mit 5 Elementen und einer mit 6 und einer mit 7 Elementen pro Zeile.
Die Blöcke möchte ich in verschiedenen Matrizen speichern.
Das Script umgeändert auf
Code:
Data(k,:)=(sscanf(Daten{Zaehler}, '%*f %f %f %f %*f'))';

liest er mir alle Zeilen mit 5 und 6 Elementen ein.
Wie kann ich verhindern, dass er die Zeilen mit 6 Elementen einliest? Ich dachte eigentlich sscanf liefert einen Fehler, wenn mehr Felder vorhanden sind, als im Format angegeben.

Wenn er schon die Zeilen mit 6 Elementen liest, warum nicht auch die mit 7?

Hatte vor ein paar Tagen den ersten Kontakt mit Matlab. Bin auch eifrig am Hilfe durchsuchen und verwenden, aber verzeiht, falls ich etwas offensichtliches übersehen hab
Rolling Eyes

Gruß HaggeL

***edit***
Mit
Code:
Data(k,:)=(sscanf(Daten{Zaehler}, '%f %f %f %f %f %f %f'))';
liest er alle Zeilen mit 7 Elementen und die einem Element (zwischen den Blöcken steht jeweils nur eine Zahl als Trenner).
Warum liest er nur nur 7- und 1-Elementige Zeilen???
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.