I want to export data to txt file in Loop
12 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Stephen23
2023-2-1
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
更多回答(1 个)
Jeremy Hughes
2023-2-2
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Structures 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!