• 回答数

    0

  • 浏览数

    2130

  • 收藏数

    0

作者:烟花易冷 发表于 2018-11-20 17:22:32
跳转到指定楼层
%MATLAB R2018a
%64位win10

function y = f(x)
if x > 1
    y = 2*x;
else
    y = 0;
end
end

%%%%%%%%%%%%%%%%%

function y = g(x)
if x > 0
    y = 2*x;
else
    y = 0;
end
end


%%%%%%%%%%%%%%%%%
%以下为调用函数实例

fplot(@(x) f(x),[-5,5])  %图像正常
fplot(@(x) g(x),[-5,5])  %图像为y=0,不正常

%且两者均有以下报错信息
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
警告: 函数处理数组输入时行为异常。要改善性能,请将您的函数正确向量化,以返回大小和形状与输入参数相同的输出。
> In matlab.graphics.function.FunctionLine>getFunction
  In matlab.graphics.function.FunctionLine/updateFunction
  In matlab.graphics.function.FunctionLine/set.Function_I
  In matlab.graphics.function.FunctionLine/set.Function
  In matlab.graphics.function.FunctionLine
  In fplot>singleFplot (line 234)
  In fplot>@(f)singleFplot(cax,{f},limits,extraOpts,args) (line 193)
  In fplot>vectorizeFplot (line 193)
  In fplot (line 163)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

经调试,当输入
>> x = -5 : 5;
>> f(x)

ans =

     0

>> g(x)

ans =

     0

问题:1.我只是改变了端点值为什么图像预期会不一致,且应如何改进才能正确画出图像
          2.f(x)=0为什么fplot还能画出正确图像

分享:
回复

使用道具

成为第一个回答人

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录