我有一个fprintf语句循环3次,以显示一些数据。在第一次迭代之后,即使我没有添加额外的\ t,MATLAB也会显示一个神秘的空间。它就好像我有一个if语句在第一次迭代后显示不同的fprintf语句,但我在代码上没有这样的东西。请参阅链接上的图片以查看其显示的结果
% Display results
fprintf('Panel\tPressure Cl\tCd\t| Panel\tPressure Cl\tCd\n')
for q = 1:length(AOA)
fprintf('--------------\t-------\t------- |--------------\t--
-----\t-------\n')
fprintf('AOA %.0f°\t\t%.4f\t%.4f\t|AOA %.0f°
\t\t%.4f\t%.4f\n'...
,AOA(q),Cl(q),CD(q),AOA(q),ClFinal(q),CDFinal(q))
fprintf('--------------\t-------\t------- |--------------\t--
-----\t-------\n')
for j = 1:length(pressure{1})
fprintf('%.0f\t%.4f\t |\t |\t|%.0f\t%.4f\n',j+1,pressure{q}
(j),j+1,pFinal{q}(j))
end
end
当你fprintf
一个\t
字符时,有一个自动空间填充最多4个空格。如果字符串少于4个字符,则字符串将被放置在开头并被“空格填充”,直到填充了4个字符(实际上,空格填充的字符只类似于一个字符)。如果字符串超过4个字符,那么它将在8,12,16等空格键盘...
以下是您的问题:
fprintf('Panel\tPressure Cl\tCd\t| Panel\tPressure Cl\tCd\n')
第一个字符串Panel
有5个字符,因此将在第一个Panel
末尾用3个空格填充空格。但是,第二个字符串| Panel
有7个字符,因此在第二个字符串的末尾只需要相当于1个空格。
要消除间距问题,并在文本标题之间保持更均匀的间距,可以在所需的每个标题后面放置一个制表符,并相应地更改其他fprintf
语句的格式:
fprintf('Panel\tPressure\tCl\t\tCd\t\t|\tPanel\tPressure\tCl\t\tCd\n')
您还可以查看此link以获取空间填充如何工作的另一个示例。
另外,here是关于格式化文本的MATLAB文档。