Verfasst am: 20.11.2012, 14:14
Titel: Fehler bei textscan
Hey
mir wird immer ein Fehler bei der Benutzung von textscan herausgegeben und ich sitze jetzt schon mehrer stunden an diesem problem und kann es nicht lösen.
Ich muss mehrere csv Dateien importieren. Dafür rufe ich mit dem Befehl 'dir' den Ordner auf und lasse mir alle Dateien anzeigen. Dann importiere ich diese mit Hilfe von textscan (da string und double vorhanden) und einer for-schleife.
Wenn mir irgendjemand weiter helfen könnte wär ich sehr dankbar!!!
vielen Dank
wolff
Code:
files=dir('Y:\Projektarbeit\Daten\EEX Daten\ex_post\previus_day_generation\2011\*.csv');%auflisten aller files in previous_day_generation
imax=numel(files); %Wie viele sind es?
data1=cell(kmax,1);
for i=1:imax
%importieren der csv-dateien
fid=fopen(files(i).name,'rt');%rt überprüfen
data1{i,1}=textscan(fid,'%*s %s %s %s %s %*s %*s','HeaderLines',7,'Delimiter',';','CollectOutput',0);
fclose(fid);
data1{i,1}=[temp{:}]; %Dateiinhalt speichern
%data2=[data1{1} data1{2} data1{3} data1{4}];
%data3=data2(57:end-1,:); %Untermatrix
end
die Dateien liegen ja in einem bestimmten Ordner, dass muss du auch FOPEN mitteilen. Um kompletten Pfad übergeben zu können, nutze FULLFILE. Dieser Befehl setzt den Pfadteile zusammen.
Code:
path2cvs = 'Y:\Projektarbeit\Daten\EEX Daten\ex_post\previus_day_generation\2011';
files=dir(fullfile(path2cvs ,'*.csv'));% auflisten aller files in previous_day_generation
imax=numel(files); % Wie viele sind es?
data1=cell(kmax,1);
for i=1:imax
%importieren der csv-dateien
fid=fopen(fullfile(path2cvs,files(i).name),'rt');% rt überprüfen
data1{i,1}=textscan(fid,'%*s %s %s %s %s %*s %*s','HeaderLines',7,'Delimiter',';','CollectOutput',0);
fclose(fid);
data1{i,1}=[temp{:}]; % Dateiinhalt speichern
%data2=[data1{1} data1{2} data1{3} data1{4}];
%data3=data2(57:end-1,:); % Untermatrix end
??? Undefined function or method 'eq' for input arguments of type 'cell'.
Error in ==> previous_day_generation at 23
data2(data2(:,1)=='AT',: )=[]; %Löschen von Zeilen mit 'AT' in erster Spalte
Liegt das daran das man nur double Werte miteinander vergleichen kann und keine string Werte? Wäre echt großartig wenn jmd einen Tipp für uns hat. Vielen Dank euch!
Code:
path2cvs = 'Y:\Projektarbeit\Daten\EEX Daten\ex_post\previus_day_generation\2011';
files=dir(fullfile(path2cvs,'*.csv'));% auflisten aller files in previous_day_generation
imax=numel(files); % Wie viele sind es?
data1=cell(imax,1); % definieren einer cell
%importieren der csv-dateien
for i=1:imax
fid=fopen(fullfile(path2cvs,files(i).name),'rt'); % rt überprüfen
temp=textscan(fid,'%*s %s %s %s %s %*s %*s','HeaderLines',7,'Delimiter',';','CollectOutput',1);
fclose(fid);
data1{i}=[temp{:}]; % Dateiinhalt speichern end
Strings vergleicht man mit STRCMP, da für == (also "eq") entweder einer der beiden Variablen ein Skalar sein muss, oder beide die gleiche Größe haben müssen.
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
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.