%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还能画出正确图像 |
|
|