高斯-赛德尔法MATLAB代码中fprintf命令的百分号含义咨询
高斯-赛德尔法MATLAB代码中fprintf的百分号含义
先看你的MATLAB代码:
k = 1; x1 = 0; x2 = 0; x3 = 0; disp(' k x1 x2 x3') fprintf(' %2.0f %-8.5f %-8.5f %-8.5f \n', k, x1, x2, x3) for k = 2:4 x1 = (17 - x2 + 2*x3)/20; x2 = (-18 - 3*x1 + x3)/20; x3 = (25 - 2*x1 + 3*x2)/20; fprintf(' %2.0f %-8.5f %-8.5f %-8.5f \n', k, x1, x2, x3) end
代码里fprintf中的%是格式说明符的起始标记,用来指定后续变量的输出格式,把数值转换成符合要求的文本样式。下面逐个拆解你用到的格式:
%2.0f:%:告知MATLAB此处要按指定格式输出一个变量2:要求输出内容至少占2个字符宽度,若数值长度不足,会在前面补空格.0:指定小数点后保留0位,实际输出整数f:以固定小数形式输出浮点数(因.0限制,最终输出整数)
对应代码里的循环次数k,保证每次的k都占2个字符宽度,让输出的迭代次数列整齐。
%-8.5f:%:格式说明符起始标记-:设置输出内容左对齐(默认是右对齐),数值靠左排列,右边补空格填充到指定宽度8:要求输出内容至少占8个字符宽度.5:指定小数点后保留5位小数f:以固定小数形式输出浮点数
对应代码里的x1、x2、x3,左对齐+固定宽度能让三列迭代结果排列得规整清晰,方便对比查看。
内容的提问来源于stack exchange,提问作者Chesso
相关产品推荐
相关产品推荐

