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

csv einlesen in Cell format

 

sbmiles21
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 16.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2014, 08:41     Titel: csv einlesen in Cell format
  Antworten mit Zitat      
Hallo zusammen,
ich habe eine csv Datei welche in via importdata einlese in A.
Wenn ich jedoch A aufrufe, wwerden Zeilen in welcher Text steht , als NA angezeigt.

Hat jemand eine Idee? ich denke es liegt an irgendeinem falschen Datentypen? kann importdata nur Zahlen importieren?

Code:
[fname,pname] =uigetfile('.csv','Öffnen der Messdatei','Excel2003Datei-Formatiert!');

fname;
pname;
extra='/';

b=strcat(pname,extra,fname); % Pfad+Dateiname
A=importdata(b,';',0);



Ausgabe A:
Code:
A =

  scalar structure containing the fields:

    data =

          NA      NA      NA      NA      NA      NA       0       0
          NA      NA      NA      NA      NA      NA       0       0
          NA       0       0       0       0       0       0       0
       20830   17564   20794       0       0       0       0      NA
       20828   17551   20803       0       0       0       0      NA
       20819   17522   20791       0       0       0       0      NA
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.05.2014, 13:12     Titel:
  Antworten mit Zitat      
Hallo

für gemischte Formate ist besser TEXTSCAN zu nutzen.
Private Nachricht senden Benutzer-Profile anzeigen
 
sbmiles21
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 16.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2014, 16:58     Titel:
  Antworten mit Zitat      
vielen Dank, das hat geklappt. Aber nun schreibt er mir alles in eine Zeile?
Gibt es eine Möglichkeit das zu ändern? Bei Importdata hat er immer schön 4 Spalten erstellt:

Code:
fileID = fopen(b);

formatSpec = '%s';
N = 200;
C_text = textscan(fileID,formatSpec,N,';','\t');

 
Private Nachricht senden Benutzer-Profile anzeigen
 
markuman
Forum-Guru

Forum-Guru


Beiträge: 320
Anmeldedatum: 14.12.12
Wohnort: ---
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
     Beitrag Verfasst am: 27.05.2014, 20:20     Titel:
  Antworten mit Zitat      
Im octave forge package io gibt es auch die Funktion csv2cell. Ggf. einfach den value separator angeben, dann darf man anschließend nur noch die Zelle parsen Very Happy
_________________

DIY OR DIE Cool

entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
Private Nachricht senden Benutzer-Profile anzeigen
 
sbmiles21
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 16.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.06.2014, 09:38     Titel:
  Antworten mit Zitat      
Danke , kannte ich gar nicht. Leider funktioniert es bei mir nicht :/

Code:
[fname,pname] =uigetfile('.csv','Öffnen der Messdatei','Excel2003Datei-Formatiert!');

fname;
pname;
extra='/';

b=strcat(pname,extra,fname); % Pfad+Dateiname

fileID = b;


C_text = csv2cell(fileID);


Fehler:
Code:
error: 'csv2cell' undefined near line 28 column 10
error: called from:
error:   D:/Ben_Data/gnutplot_data/scripts\Read_timestamp.m at line 28, column 8


Komisch oder?

gruss
Private Nachricht senden Benutzer-Profile anzeigen
 
markuman
Forum-Guru

Forum-Guru


Beiträge: 320
Anmeldedatum: 14.12.12
Wohnort: ---
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
     Beitrag Verfasst am: 12.06.2014, 10:26     Titel:
  Antworten mit Zitat      
Naja, in Matlab gibt es die Funktion ja auch nicht, nur in Octave.

Aber versuch mal diese Funktion

https://github.com/markuman/linux/blob/master/matlab/csv2cell.m

Code:

>> datei='meinedatei.csv';
>> separator=','; % z.B. ein Komma oder ein Semikolon ...
>> anzahl_header_zeilen=0; % Wenn du keine hast. Oder 3, oder oder oder. Wenn du die allerdings nicht angibst, kann deine Datei nicht richtig in einer Zelle übertragen werden
>> out = csv2cell(datei, separator, anzahl_header_zeilen);
 

_________________

DIY OR DIE Cool

entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
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.