我想生成一个文本文件,其中包含字符串和数字的混合。该示例如下:fprintf与字符串和数字的混合
clear all
fakeData = @(location) struct('Location',location,'AirT',rand(320,1),'SolRad',rand(320,1),'Rain',rand(320,1));
s(1) = fakeData('England');
s(2) = fakeData('Wales');
s(3) = fakeData('Scotland');
s(4) = fakeData('Ireland');
FieldName = {s.Location};
R = corrcoef([s.AirT],'rows','pairwise');
R_Values = [FieldName(nchoosek(1:size(R,1),2)) num2cell(nonzeros(tril(R,-1)))];
MeanCorr = mean(cell2mat(R_Values(:,3)));
Headings = {'L1','L2','Correlation'};
R_Values1 = [Headings;R_Values];
R_Values1 = [R_Values1; {'','Mean',MeanCorr}];
为了打印R_Values我想简单地键入:
for i=11:length(R_Values);
fprintf(1,'%12s\t%12s\t%9.6f\n',R_Values{i,1},R_Values{i,2},R_Values{i,3})
end
然而,试图为R_Values1做到这一点时,我失败了,林不知道如何允许R_Values1的第一行和最后一行的格式不同。
经过一些试验和错误后,我发现用fprintf替换为: fprintf(1,'% - 12s \ t%-12s \ t%-12s \ n',R_Values1 {i,1},R_Values1 {i,2},R_Values1 {i,3}) 代码确实写入的格式正确,但与R_Values1中的代码不完全相同 – Emma 2012-03-01 20:26:57
只用单独的fprintf语句尝试打印标题行,并且工作完美。谢谢。 – Emma 2012-03-01 20:32:41
@ user1155751很高兴有帮助。 – Azim 2012-03-01 21:45:04