Ich habe eine große Anzahl von Textdateien, die ich lesen muss, finden Sie den Maximalwert für eine bestimmte Spalte und die entsprechende Zeit. Die for-Schleife zum Finden dieser Werte funktioniert gut, aber mein Problem ist das Schreiben einer Textdatei, die die drei Variablen, die ich brauche (thisfilename, M und wavetime) für jede Iteration der for-Schleife zeigt.MATLAB: Export Skalare innerhalb von for Schleife in Textdatei
Output_FileName_MaxWaveHeights = ['C:\Users\jl44459\Desktop\QGIS_and_Basement\BASEMENT\Mesh_5_2045\Run_A\','MaxWaveHeights.txt'];
writefile = fopen(Output_FileName_MaxWaveHeights,'a');
dinfo = dir('*.dat');
for K = 1 : length(dinfo)
thisfilename = dinfo(K).name; %just the name of the file
fileID = fopen(thisfilename); %creates numerical ID for the file name
thisdata = textscan(fileID,'%f64%f64%f64%f64%f64%f64%f64',500,'HeaderLines',1); %load just this file
thisdataM = cell2mat(thisdata); %transforms file from cell array to matrix
[M,I] = max(thisdataM(:,5)); %finds max WSE and row it's in
wavetime = 2*(I-1); %converts column of max WSE to time
fprintf(writefile,'%s %8.4f %4.0f \r\n',thisfilename,M,wavetime);
fclose(fileID); %closes file to make space for next one
end
Die Textdatei endet nur geben Sie mir die Werte für eine Iteration statt alle von ihnen. Ich konnte Displaytable als Workaround verwenden, aber ich habe Probleme beim Schreiben von "thisfilename", das nicht-numerische Zeichen enthält.
Wie wäre es mit dem Speichern der Werte in einer Zelle und Schreiben der Zelle in die Datei außerhalb der for-Schleife? – NKN
Ich sehe nicht, Sie schließen die Ausgabedatei 'fclose (writefile)' am Ende nach der Schleife. Hast du vergessen, es in das Beispiel aufzunehmen? – Hoki