Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2012-11-16, 11:40   #1
glfkuan
初级会员
 
注册日期: 2012-11-12
年龄: 36
帖子: 4
声望力: 0
glfkuan 正向着好的方向发展
默认 求教一个分段函数的问题——高手请进!

求教一个分段函数的问题——定义分段函数,并绘制图形。
大家帮我看看为什么会得到2个不同的图形?????求教,谢谢!

分段函数是:

当x≥0时,f(x)=2x^2-3sinx
当x<0时,f(x)=-ln(-x)+x



我先在func1.m中编写分段函数
function y = f( x )
if x<0
y=-log(-(x))+x;
else
y=2*x.^2-3*sin(x);
end
end

然后在command window中输入:
>> x=[-2:0.01:2];
>> y=func1(x);
>> plot(x,y);xlabel('x');ylabel('y');
得到图形1:
(图形弄不上来,大家可以把我的程序输入到Matlab里面自己画一下)

若在command window中输入:
>> x=[-2:0.01:2];
>> y=zeros(size(x));
>> for a=1:length(x)
y(a)=func1(x(a));
end
>> plot(x,y); xlabel('x');ylabel('y')
得到图形2:


为什么同一个分段函数func1会画出2个不同的图像呢?请指教!
glfkuan 当前离线   回复时引用此帖
旧 2012-11-16, 11:41   #2
glfkuan
初级会员
 
注册日期: 2012-11-12
年龄: 36
帖子: 4
声望力: 0
glfkuan 正向着好的方向发展
默认 回复: 求教一个分段函数的问题——高手请进!

请高手指点!!谢谢!!!
glfkuan 当前离线   回复时引用此帖
旧 2012-11-16, 13:21   #3
zsy312
普通会员
 
注册日期: 2008-08-17
年龄: 43
帖子: 77
声望力: 18
zsy312 正向着好的方向发展
默认 回复: 求教一个分段函数的问题——高手请进!

在第一个输入当中, x是一个向量, 向量并不都小于零, 所以直接都执行else去了. 所以就达不到你的目的了.可以改为
代码:
y=(x<0).*(-log(-(x))+x)+(x>=0).*(2*x.^2-3*sin(x));
zsy312 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 13:41


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.