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

Lesen und Schreiben

 

Martin8803

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.12.2012, 01:05     Titel: Lesen und Schreiben
  Antworten mit Zitat      
Hi,
ich möchte mit folgender Syntax Werte einlesen, schreiben und speichern.

Code:

Code:
[Dateiname, Pfad] = uigetfile('*.txt', 'Bitte Datei auswählen!');
fid = fopen(fullfile(Pfad,Dateiname), 'r');
C = cell(1,10);
iC = 0;
weiter = true;
while (weiter)
    s = fgetl(fid);
    if ischar(s)
         A = sscanf(s, '%1f ', 1);
         S = sprintf(' %g  \n', A);
         iC = iC + 1;
         C{iC} = S;
         K=sprintf('%s\n', S);
        fprintf('%s\n', S);
    else
        weiter = false;
    end
end
fclose(fid);
C = C(1:iC);
K=fprintf('%s\n', S);


Die geschriebenen Daten sollen mit:

Code:
save('newstructure.mat','K','-mat')


als .mat gespeichert werden.

Kann man fprintf einer Variablen zuordnen und die Werte in einem.mat file abspeichern?

Code:
K = [S{1:10}]
bringt auch keine Lösung.

Danke für Eure Unterstützung!

Gruß, Martin

Beispiel.txt
 Beschreibung:

Download
 Dateiname:  Beispiel.txt
 Dateigröße:  27 Bytes
 Heruntergeladen:  318 mal


Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 12.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.01.2013, 12:29     Titel:
  Antworten mit Zitat      
Wie der Matlab-Interpreter Dir hoffentlich auch sagt, ist an der Syntax Deines Programms absolut alles richtig. Semantisch weiß ich aber nach dem Lesen nicht, was Du eigentlich bezwecken willst.
Du liest 10 Zahlen ein und dann?
Kannst Du den Sinn des Umwandelns in Strings noch mal klar machen?
Wie soll das Endergebnis denn nun aussehen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin8803

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.01.2013, 21:51     Titel:
  Antworten mit Zitat      
Hallo Sirius,
ich habe das Programm ein wenig verändert:

Code:
[Dateiname, Pfad] = uigetfile('*.txt', 'Bitte Datei auswählen!');
fid = fopen(fullfile(Pfad,Dateiname), 'r');
C = cell(1,10);
iC = 0;
weiter = true;
while (weiter)
    s = fgetl(fid);
    if ischar(s)
         A = sscanf(s, ' %*1s %2f %*2s ', 1);
         S = sprintf(' %g  \n', A);
         iC = iC + 1;
         C{iC} = S;
         K=sprintf('%s\n', S);
        fprintf('%s\n', S);
    else
        weiter = false;
    end
end
fclose(fid);
C = C(1:iC);
K=fprintf('%s\n', S);

save('newstructure.mat','K','-mat')


ich bekomme eine Datei die zeilenweise ausgelesen werden soll. Da mich nur die Zahlenwerte aus Spalte 2 und 3 interessieren, werden diese mit sscanf() zeilenweise ausgelesen und in einer neuen Datei "newstructur.mat" abgespeichert.
Da die Datei "newstructure.mat" in einem anderen Programm weiterverarbeitet wird, müssen die ausgelesenen Werte ebenfalls zeilenweise angeordnet sein.
Mit fprintf f() werden zwar alle ausgelesenen Werte fortlaufend angezeigt, abspeichern kann ich diese aber nicht.

(so soll es idealerweise aussehen)
Beispiel:

einlesen der Datei "Beispiel.txt"

12233
22233
32233
.
.
.

Spalte 2 und 3 auslesen und anschließend in "newstructure.mat" abspeichern

newstructure.mat
22
22
22
22
.
.
.

Beispiel_2.txt
 Beschreibung:

Download
 Dateiname:  Beispiel_2.txt
 Dateigröße:  63 Bytes
 Heruntergeladen:  330 mal
 
Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 12.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2013, 14:24     Titel:
  Antworten mit Zitat      
Du willst also keine mat-Datei sondern eine ganz normale Textdatei!

Dafür ist ja ursprunglich fprintf da.
Code:
fid = fopen('newstructure.txt','w');
fprintf(fid,'%g\n', A);
fclose(fid);


Grüße
Sirius
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin8803

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2013, 15:47     Titel:
  Antworten mit Zitat      
Ich lese eine .txt Datei ein (Beispiel.txt) und Speicher die ausgelesenen Daten in einer .mat Datei ab (newstructure.mat) ab. Mit dem fprint() Befehl kann ich mir die Daten Zeilenweise Anzeigen lassen. Möchte ich sie abspeichern, muss ich den fprintf() einer variablen zuordnen
Code:
% Ergebnis= fprintf()
. Und anschließend abspeichern
Code:
% save('newstructure.mat','Ergebnis','-mat')
 
Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 12.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2013, 17:57     Titel:
  Antworten mit Zitat      
In mat-Dateien macht es keinen Sinn, aus Matrizen Strings zu erzeugen und sie dann
wie auch immer umzuwandeln. Du speicherst einfach die Matrix so wie sie ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin8803

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2013, 19:36     Titel:
  Antworten mit Zitat      
und wie speicher ich die Matrix?
Das bekomme ich nicht hin?
Mit
Code:
fprintf(fid,'%g\n', A);

kann ich die Werte nur anzeigen lassen und nicht abspeichern.
 
Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 12.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2013, 11:28     Titel:
  Antworten mit Zitat      
Nicht Dein Ernst‽

Code:
save('newstructure.mat','A');
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.