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循环中生成表;
发布于 2017-11-08 08:35:05
在命令窗口中绘制对齐文本的一个简单方法是使用选项卡。我也建议使用fprintf作为标题。我更改了第一行和第二十行:
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结果是:
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保存在矩阵的每一行上,从而获得类似的结果,该矩阵可以显示为表。您还可以使用表格变量作为存储变量,该变量可以按照您的要求显示,但这取决于您在下面的代码中使用数据的方式。
https://stackoverflow.com/questions/47168767
复制相似问题