I want to export data to txt file in Loop
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
The boy
am 1 Feb. 2023
Kommentiert: The boy
am 3 Feb. 2023
files = dir('*.txt');
N =length(files);
for i=1:N
data = readtable(files(i).name);
data = removevars(data, {'Var9','Var10'});
% save to txt file
newtxt = table2cell(finalfile(:,1:9));
writecell(newtxt,'newfile.txt','Delimiter','tab');
type newfile.txt
end
*** my code above is try to remove some columm in a txt file, I have 30 txt file like that need to work in a LOOP.
Everytime I write the txt file, the new file is overwritten in the same file name, I do not know how to write the txt file with using LOOP . Please help me to fix the code again. Thank you
0 Kommentare
Akzeptierte Antwort
Stephen23
am 1 Feb. 2023
P = 'absolute or relative path to where the files are saved';
S = dir(fullfile(P,'*.txt'));
for k = 1:numel(S)
F = fullfile(S(k).folder,S(k).name);
D = readtable(F);
D = removevars(D, {'Var9','Var10'});
% new filename
[~,F,E] = fileparts(S(k).name);
F = sprintf('%s_new%s',F,E);
% save to txt file
newtxt = table2cell(finalfile(:,1:9));
writecell(newtxt,F,'Delimiter','tab');
end
Weitere Antworten (1)
Jeremy Hughes
am 2 Feb. 2023
If you want to write the data to one file, this should work
for i=1:N
data = readtable(files(i).name);
% Assuming you're removing data you don't need (and that Var9 Var10 are # 9 and 10), this is the most concise way.
writetable(data(:,1:8),'newfile.txt','Delimiter','\t','WriteMode','append');
end
If you want do write to different files:
mkdir("newplace")
for i=1:N
data = readtable(files(i).name);
newname = fullfile("./newplace","new_"+files(i).name);
writetable(data(:,1:8),newname,'Delimiter','\t');
end
Siehe auch
Kategorien
Mehr zu Structures finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!