如何修复第一次迭代后MATLAB显示的额外空间

时间:2019-03-23 17:50:09

标签: matlab text printf

我有一个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

1 个答案:

答案 0 :(得分:0)

当您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文档。