I want to export data to txt file in Loop

22 Ansichten (letzte 30 Tage)
The boy
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));
type newfile.txt
*** 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

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));
  1 Kommentar
The boy
The boy am 3 Feb. 2023
Thanks Stephen23, I learned it . Your code work well!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Jeremy Hughes
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.
If you want do write to different files:
for i=1:N
data = readtable(files(i).name);
newname = fullfile("./newplace","new_"+files(i).name);

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by