aligning data for fprintf

10 次查看(过去 30 天)
for j=1:2
[a(j),b(j)]=size(char(FileName(:,j))); % b=[38 38]
[c(j),d(j)]=size(char(FileName2(:,j))); % d=[38 38]
first_space(j)=b(j)+4;
second_space(j)=d(j)+8;
end
fprintf(fid,'%*s %*s\n',max(first_space),' G',max(second_space),' G');
fprintf(fid, '\n\n');
for j=1:2
fprintf(fid,'%s %.1f %s %.1f\n', FileName{:,j}, data1(j), FileName2{:,j}, data2(j));
end
The above codes created the output txt file with aligned output data if the length of the Filenames are the same. For example:
FileName =
1×2 cell array
{'COD0MGXFIN_20210890000_01D_05M_ORB.SP3'} {'COD0MGXFIN_20210900000_01D_05M_ORB.SP3'}
FileName2 =
1×2 cell array
{'COD0MGXFIN_20210920000_01D_05M_ORB.SP3'} {'COD0MGXFIN_20210930000_01D_05M_ORB.SP3'}
If these FileNames are used, there is no problem for the alignment. I attached the output file (output_aligned.txt)
But, when the length of Filenames are different, the alignment cannot be maintained with the above codes. For example:
FileName =
1×2 cell array
{'COD0MGXFIN_20210920000_01D_05M_ORB.SP3'} {'COD20714.EPH_M'}
FileName2 =
1×2 cell array
{'COD0MGXFIN_20210890000_01D_05M_ORB.SP3'} {'COD20720.EPH_M'}
When using the above FileNames, the output file doesn't aligned. I attached the output file (output_non_aligned.txt) created the second part of above codes. How can I modify the above codes to write consistently aligned output regardless of the length of FileName and FileName2?

采纳的回答

darova
darova 2021-8-4
Here is ax example
a = rand(10,1)*1e4;
sprintf('a = %7.2f\n',a')
ans =
'a = 169.57 a = 5470.00 a = 6023.50 a = 7339.91 a = 2607.20 a = 630.21 a = 2342.76 a = 3390.90 a = 9812.91 a = 9146.70 '

更多回答(1 个)

Yongjian Feng
Yongjian Feng 2021-8-4
Use "\t" to create tabs?
  1 个评论
sermet OGUTCU
sermet OGUTCU 2021-8-4
Could you show me this modification using the above codes to be more specific?

请先登录,再进行评论。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by