Ich habe 30 TXT-Dateien mit dem gleichen Format wie unten gezeigt. Von jeder Datei muss ich den entsprechenden Wert und die Matrix extrahieren, daher muss ich die Zeichenkette überspringen und auch die Leerzeile. Ich kenne auch die Gesamtzählzahl für jede n-mal-n-Matrix für jeden Zeitschritt (in diesem Fall haben wir eine 5 × 5-Matrix). Mein Code funktioniert jedoch nicht. HierMatlab: Txt-Datei mit mehreren Format lesen und die Zeichenfolge und die Leerzeile überspringen
ist der Inhalt der txt-Datei
Current Time Step = 2
Array - one
1 2 3 4 5
2 0 1 0 0
3 1 0 0 0
4 0 0 0 1
5 0 0 1 0
Array - two
1 1 1 1 1
2 0 1 0 0
3 1 0 0 0
4 0 0 0 1
5 0 0 1 0
Array - three
1 0.000000000000000E+000 0.000000000000000E+000
2 -2.43840000000000 0.000000000000000E+000
3 2.43840000000000 0.000000000000000E+000
4 0.000000000000000E+000 -2.43840000000000
5 0.000000000000000E+000 2.43840000000000
Array - four
1 8.969565865552799E-004
2 3.871274684514957E-004
3 3.871274684514958E-004
4 3.871274684514958E-004
5 3.871274684514956E-004
Array - five
1 35472082.4364420
2 34502005.6533170
3 34502005.6533170
4 34502005.6533170
5 34502005.6533170
Time of Current Time Step = 0.537921191784371
Time at the End of Current Time Step = 0.559240045256864
Hier ist mein Code:
Nc = 5;
textFilename = ['TimeStep-2.txt'];
fid = fopen(textFilename);
for k = 1:1
zero = sscanf(fid,'%f','Delimiter','\n');
end
for k = (1+4):(1+(Nc-1)+4)
one = sscanf(fid,'%f %f %f %f %f',[5,inf]);
end
for k = (1+(Nc-1)+2*4):(1+2*(Nc-1)+2*4)
two = sscanf(fid,'%f %f %f %f %f',[5,inf]);
end
for k = (1+2*(Nc-1)+3*4):(1+3*(Nc-1)+3*4)
three = sscanf(fid,'%f %f %f',[3,inf]);
end
for k = (1+3*(Nc-1)+4*4):(1+4*(Nc-1)+4*4)
four = sscanf(fid,'%f %f',[2,inf]);
end
for k = (1+4*(Nc-1)+5*4):(1+5*(Nc-1)+5*4)
five = sscanf(fid,'%f %f',[2,inf]);
end
for k = (1+5*(Nc-1)+5*4+2):(1+5*(Nc-1)+5*4+2)
six = sscanf(fid,'%f','Delimiter','\n');
end
for k = (1+5*(Nc-1)+5*4+2*2):(1+5*(Nc-1)+5*4+2*2)
seven = sscanf(fid,'%f','Delimiter','\n');
end
fclose(fid);
Wo schlägt Ihr Code fehl? – codeaviator
Fehler bei der Verwendung von sscanf "Zu viele Eingabeargumente" – FortranFun
Warum verwenden Sie ein solches Datenformat? – Bernhard