How to have a variable format spec print length when using fprintf?
8 次查看(过去 30 天)
显示 更早的评论
I am trying to print column header information to a .txt file using fprintf. I am importing the column header information from another file. The problem is that the imported column header information can be any character length, as defined by the user (e.g. could be 1 character long, could be 20). I would like to use the maximum header length to define how much space will be needed when printing the column headers/labels. The code in question is summarized below:
for i = 1:length(headerinformation)
fprintf(fid,'%10s',headerinformation{i})
end
The default amount of space I am using is 10 (i.e. %10s), but this doesn't work well when the headers are > 10. At first i tried using the maximum header lenth variable to define the maximum header length, but this didn't work properly when using the fprintf format spec. I tried something similar to the following:
MaxHeaderLength = max(cell2mat(columnheaderlength));
for i = 1:length(headerinformation)
fprintf(fid,'%(%i)s',headerinformation{i}, MaxHeaderLength) %parenthesis around %i added for explanation only, i know this wouldn't actually work
end
Any guidance would be appreciated.
0 个评论
采纳的回答
Jess Lovering
2019-8-15
Would this work for what you need?
MaxHeaderLength = max(cell2mat(columnheaderlength));
max_fmt_spec = ['%' num2str(MaxHeaderLength) 's'];
for i = 1:length(headerinformation)
fprintf(fid,max_fmt_spec,MaxHeaderLength)
end
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Whos 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!