Ich habe aufeinander folgende .dat-Dateien, die ich in einer einzigen Matrix durch vertikale Verkettung der Dateien lesen und eingeben möchte. Der Code, den ich bisher verwendet habe, funktioniert gut für einfache numerische Dateien mit nur Tabs als Trennzeichen.überspringen Header in nicht-rechteckigen Matrix
import=[];
data=[];
for i = 1:32
data1=[import dlmread(sprintf('%d.dat',i))];
data=vertcat(data, data1);
clear data1;
end
und ich nehme den richtigen Ausgang in die Datenmatrix. Aber mein Dateiformat ist wie folgt:
first second third
0 11/15 08:57:42.000 54 67 82
1 11/15 09:48:47.010 49 32 31
...
Wie Sie sehen Ich habe drei Trennzeichen (: \ t /) und Header nur in den letzten drei Spalten, die im wesentlichen der, die wir lesen möchten, dass ich bin soll eine Matrix:
54 67 82
49 32 31
...
ich versucht die Delimiter in die dlmwrite Spezifizieren und wie viele Zeilen/Spalten zu überspringen, aber ein Fehler auftritt in sprintf ('delimiter = sprintf (delimiter);% Interpretieren \ t (falls erforderlich) '). Hat jemand eine Idee, wie man das macht?
UPDATE:
gelang es mir, ein wenig weiter
data=[];
for i = 1:32
filename = sprintf('%d.dat',i);
data1=importdata(filename);%creates a cell array
data2=cell2mat(data1(3:end,:));%converts it to char
%The data, without the header, start from the 3rd row.
data=vertcat(data, data2); %concatenate vertically all the files
clear data1; clear data2;
end
%the data
a1=str2num(data(1:end,20:25));%the first data column is in char 20-25
a2=str2num(data(1:end,30:35));%the second data column is in char 30-35
Die Sache zu bekommen, ist, dass der letzte Teil zu viel Zeit in Anspruch nimmt, mehr als eine Stunde vergangen ist, bis ich es manuell gestoppt. Kennt jemand einen einfacheren und schnelleren Weg dies zu tun?
Bitte geben Sie die tatsächliche Fehlermeldung an. – excaza
@excaza Ich habe bereits in meinem ursprünglichen Beitrag: '' delimiter = sprintf (delimiter); % Interpret \ t (falls erforderlich) '' – user148939
Das ist keine Fehlermeldung. – excaza