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

Cell array in txt-datei speichern

 

hotsauce
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 06.03.09
Wohnort: Sindelfingen
Version: R2007B
     Beitrag Verfasst am: 19.01.2010, 12:40     Titel: Cell array in txt-datei speichern
  Antworten mit Zitat      
Hallo, Zusammen

Ich wollte eine kleine Matlab Programm implementieren, damit csv-file/txt teilweise einzulesen und die eingelesene Zahlen wieder in eine txt-file speichert werden.

meine CSV/TXT data sieht so aus:

Record Length,50000,"Points",-0.0193996002, -0.00390625
Sample Interval,4.00000005e-007,s,-0.0193992002, -0.00384375
Trigger Point,48499,"Samples",-0.0193988002, -0.00390625
Trigger Time,2.00530792e-007,s,-0.0193984002, -0.00378125
,,,-0.0193980002, -0.00384375
Horizontal Offset,-0.0194000002,s,-0.0193976002, -0.00409375
,,,-0.0193972002, -0.00378125
,,,-0.0193968002, -0.00340625
...

Für die weitere Verarbeitung, brauche ich nur die Zahlen die ganz recht stehen,das heißt , nur
-0.00390625
-0.00384375
-0.00390625
....

Dann speichern sie unter eine txt-file, je Zeile eine Zahl.

Hier ist meine Code:

Code:

[Filename, Pathname] = uigetfile( '*.csv','Select a CSV-file');
format long;
File = [Pathname,Filename];
[num,txt] = xlsread(File);
n = size(txt);
n = n(1);

data = cell(1,1);

for i = 1:n
    j = findstr(txt{i},', ');
    data{i,1}= txt{i}(j+2:end); % Zahlen in data{} speichern
end

% txt-file erzeugen
fid = fopen('test.txt','w');
for k = 1:n
    fprintf(fid,'%f\n',data{k,1});
end
fclose(fid);
 


Aber test.txt sieht nicht so wie ich erwartet.
Zwischen Zahlen gibt's keine 'new Line', das heißt '\n' funktioniert nicht.
und noch schlimmer ist, die Zahlen stimmen nicht....... -_-

wieso?kann jemand mir helfen? vielen dank!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

schau dir doch mal an, ob die Daten überhaupt richtig eingelesen wurden, d.h. ob die Variable data die gewünschten Daten enthält.

Falls die Zahlen nur falsch ankommen, dürfte das daran liegen, dass du wohl Strings extrahierst. Hier hilft str2double zur Umwandlung.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 06.03.09
Wohnort: Sindelfingen
Version: R2007B
     Beitrag Verfasst am: 19.01.2010, 13:39     Titel:
  Antworten mit Zitat      
Danke!!

Stimmt, habe str2double vergessen,jetzt sieht das code so aus

Code:

fid = fopen('test.txt','w');
for k = 1:n
    fprintf(fid,'%f\n',str2double(data{k,1}));
end
fclose(fid);

 


Aber stehen die Zahlen eine nach einander ,wie kann ich diese txt-file 'line by line' erstellen?

bin für jede Antwort sehr dankbar!
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 19.01.2010, 15:59     Titel:
  Antworten mit Zitat      
Hallo,

das hängt eigentlich von Editor ab,(Carriage Return und Line Feed) einige Editoren brauchen halt beide Zeichen, anderen braucht nur Line Feed

Um das zu vermeiden, benutze bei fopen zusätzlich option t
Code:

fid = fopen('test.txt','wt');
 


Zuletzt bearbeitet von denny am 19.01.2010, 16:16, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
hotsauce
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 06.03.09
Wohnort: Sindelfingen
Version: R2007B
     Beitrag Verfasst am: 19.01.2010, 16:10     Titel:
  Antworten mit Zitat      
Very Happy

geschafft!! vielen vielen dank!! juhu,kann jetzt weiter programmieren!
Private Nachricht senden Benutzer-Profile anzeigen
 
CELLI

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.03.2017, 17:27     Titel: Cell in txt
  Antworten mit Zitat      
Hallo,
ich hole mal wieder dieses Thema hervor.

Wie kann ich eine Cell-Matrix der vorm

'Hallo' 'liebe' 'Welt'
'Datei' 2 2
'Datei' 3 -2i
'Datei' 5 15

Als txt abspeichern?
 
gs
Forum-Century

Forum-Century


Beiträge: 172
Anmeldedatum: 17.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.03.2017, 08:32     Titel:
  Antworten mit Zitat      
Hi,

prinzipiell gehst du genau wie hier über deinen Post vor... nur du nutzt die Endung "txt"

alternativ kannst du auch hier rein schauen

https://www.mathworks.com/examples/.....t-cell-array-to-text-file

Grüße gs
_________________

Mein Seite.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

inzwischen bieten sich auch Tables an, um Daten bequem zu verwalten und zu exportieren: relevante Befehle sind table / readtable / writetable / cell2table

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.