How to save output of for loop (table) into excel sheet?
8 次查看(过去 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 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Import from MATLAB 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!