Matlab中disp,fprintf和sprintf有什么区别

 我来答
孩衫电股傲泛1N
2017-01-13 · TA获得超过4.4万个赞
知道大有可为答主
回答量:1.1万
采纳率:77%
帮助的人:2110万
展开全部
都是把格式好的字符串输出,只是输出的目标不一样:
1 printf,是把格式字符串输出到标准输出(一般是屏幕,可以重定向)。
2 sprintf,是把格式字符串输出到指定字符串中,所以参数比printf多一个char*。那就是目标字符串地址。
3 fprintf, 是把格式字符串输出到指定文件设备中,所以参数笔printf多一个文件指针FILE*。
回答不容易,希望能帮到您,满意请帮忙采纳一下,谢谢 !
申克博士
2024-05-16 广告
关于这个问题,您可以联系公司官网的客户服务部门获取相关信息。以下为该公司的基本信息:申克博士测试设备(昆山)有限公司上海分公司是申克博士测试设备(昆山)有限公司的上海分公司,位于中国(上海)自由贸易试验区。该公司是德国申克博士测试设备有限公... 点击进入详情页
本回答由申克博士提供
匿名用户
2017-10-24
展开全部
f=inline('x^2-7*x+10','x');
a=2;
b=8;
epsilon=0.25;
x1=b-0.618*(b-a);
f1=f(x1);
x2=a+0.618*(b-a);
f2=f(x2);
for k=1:7
fprintf(1,'迭代次数 k=%3.0f\n',k)
if f1<=f2
b=x2;
x2=x1;
f2=f1;
x1=b-0.618*(b-a);
f1=f(x1);
else
a=x1;
x1=x2;
f1=f2;
x2=a+0.618*(b-a);
f2=f(x2);
end
x=0.5*(b+a);
fprintf(1,'迭代区间-左端 a=%3.4f\n',a)
fprintf(1,'试点1坐标值 a=%3.4f\n',x1)
fprintf(1,'函数值 f1=%3.4f\n',f(x1))
fprintf(1,'迭代区间-右端 b=%3.4f\n',b)
fprintf(1,'试点2坐标值 x2=%3.4f\n',x2)
fprintf(1,'函数值 f2=%3.4f\n',f(x2))
fprintf(1,'区间中点 x=%3.4f\n',x)
% disp''
end

让disp函数不工作,即可,不过看起来你这编的是0.618算法。好像网上有源代码
不过你这是控制迭代次数,下面我给了你控制迭代精度的代码,希望对你有所帮助,
如果你喜欢我的回答,那就给个精华吧
clc
clear all;
a=1; %区间下限
b=7; %区间上限
e=0.1; %精确度
f = inline('x^2-7*x+10');
%构造的目标函数
x1=a+0.382*(b-a);
y1=f(x1);
x2=a+0.618*(b-a);
y2=f(x2);
while abs(b-a)>e
if y1<y2
b=x2;
x2=x1;
y2=y1;
x1=a+0.382*(b-a);
y1=f(x1);
else
a=x1;
x1=x2;
y1=y2;
x2=a+0.618*(b-a);
y2=f(x2);
end
end
xp=0.5*(a+b); %算出目标值
fp=f(xp);
sprintf('xp=%f,\nfp=%f',xp,fp)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式