How to save output of for loop (table) into excel sheet?
13 次查看(过去 30 天)
显示 更早的评论
Good afternoon all,
I am working on Ascii files, I create a for loop (of 365 iterations = no of files) that reads a specific coulmn from ascii files, and because there are some files that has a coulmn legnth that differ from the others I couldn't save the output of the loop into matrix so I saved it as table, my problem now that I couldn't export this table into excel sheet (I used writetable function)
here is my code
clear
clc
for k=01:365
try
filename = sprintf('iqac%03d0.tro',k);
fid=fopen(filename, 'r'); %# open the file in this Path
ZTD = textscan(fid,'%*s %*s %f %f %*[^\n]','HeaderLines',14);
data = cell2mat(ZTD);
zhd = data(:,1);
zwd = data(:,2);
ztd = zhd + zwd;
mat{:,k} = ztd;
mat1=cell2table(mat);
fclose(fid);
catch ME
disp('An error occurred while processing the files.');
disp('Execution will continue.');
continue
end
end
writetable(mat1,'ztd1.xlsx', 'Sheet', 'ztd');
every time I run the code, I had an error message said that the table size exceed the sheet boundary, although when I run it and save the output as matrix into excel I didn't have such error.
I attached sample of files as an example
0 个评论
采纳的回答
Sulaymon Eshkabilov
2021-5-22
Hi,
There are several errs in your code, k = 1:5 not 1:365. In your case writetable() is not the best option to employ with your data. It is easier to use writematrix() - see the whole code below.
RANGE =[{'A2:A3000', 'B2:B3000', 'C2:C3000', 'D2:D3000', 'E2:E3000'}];
for k=1:5
try
filename = sprintf('iqac%03d0.tro',k);
fid=fopen(filename, 'r'); %# open the file in this Path
ZTD = textscan(fid,'%*s %*s %f %f %*[^\n]','HeaderLines',14);
data = cell2mat(ZTD);
zhd = data(:,1);
zwd = data(:,2);
ztd = zhd + zwd;
fclose(fid);
writematrix(ztd,'ZTD1.xlsx' , 'Sheet',1, 'Range',RANGE{k})
catch ME
disp('An error occurred while processing the files.');
disp('Execution will continue.');
continue
end
end
Good luck.
7 个评论
Sulaymon Eshkabilov
2021-5-23
You don't have to type in all these which can be generated automatically using an addtional loop code, for instance.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!