首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Matlab中打印类似表格的输出

在Matlab中打印类似表格的输出
EN

Stack Overflow用户
提问于 2017-11-07 22:55:39
回答 1查看 49关注 0票数 0
代码语言:javascript
复制
disp('iteration   xl       xu       xr       £a(%)');   
xu=10;
xl=0;
xrpv=0;er=0;
f=@(x)(5*exp(0.5*x)+10-x^3.5);
for i=1:1:200;
xr=(xl+xu)/2;
fxr=f(xr);
er=((xr-xrpv)/xr)*100;
xrpv=xr;
if abs(er)<10^-6
    disp(abs(er));
    break
end
if (f(xl)*f(xr)>0)
    xl=xr;
else
    xu=xr;
end
fprintf('&d %f %f %f %f',i,xl,xu,xr,er)
end

我正在尝试从输出在for循环中生成表;

  • xl xr xr ea%
  • 0 5 10 100
  • 1*
  • 2*
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-08 08:35:05

在命令窗口中绘制对齐文本的一个简单方法是使用选项卡。我也建议使用fprintf作为标题。我更改了第一行和第二十行:

代码语言:javascript
复制
fprintf('it. \t xl  \t   xu  \t  xr \t   ea%%\n');   
xu=10;
xl=0;
xrpv=0;er=0;
f=@(x)(5*exp(0.5*x)+10-x^3.5);
for i=1:1:200
    xr=(xl+xu)/2;
    fxr=f(xr);
    er=((xr-xrpv)/xr)*100;
    xrpv=xr;
    if abs(er)<10^-6
        disp(abs(er));
        break
    end
    if (f(xl)*f(xr)>0)
        xl=xr;
    else
        xu=xr;
    end
    fprintf('%3d \t%.1f \t%.1f \t%.1f \t%.1f\n',i,xl,xu,xr,er)
end

结果是:

代码语言:javascript
复制
it.      xl        xu     xr       ea%
  1     0.0     5.0     5.0     100.0
  2     2.5     5.0     2.5     -100.0
  3     2.5     3.8     3.8     33.3
  4     2.5     3.1     3.1     -20.0
  5     2.5     2.8     2.8     -11.1
...

可以通过将i,xl,xu,xr,er保存在矩阵的每一行上,从而获得类似的结果,该矩阵可以显示为表。您还可以使用表格变量作为存储变量,该变量可以按照您的要求显示,但这取决于您在下面的代码中使用数据的方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47168767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档