Matlab问题:绘制图形,syms x; f=sin(1/x);ezplot(f,[0.01,0.1]);没有问题,但是精度不够,用fplot()

后fplot(f,[0.01,0.1],2e-3);出现错误
Error using fcnchk (line 103)
If FUN is a MATLAB object, it must have an feval method.
Error in fplot (line 61)
fun = fcnchk(fun);
后改用fplot('sin(1/x)',[0.01,0.1],2e-3)成功,请高手指教!为何
最新回答
赵家小子

2024-09-26 01:43:17

fplot的第一个参数FUN是函数句柄,而不是符号表达式。

如下三种写法是正确的:

fplot('sin(1/x)',[0.01,0.1],2e-3);
fplot(@(x)sin(1/x),[0.01,0.1],2e-3);
fplot(matlabFunction(f),[0.01,0.1],2e-3);%matlabFunction函数用于将符号表达式转化成函数句柄
追问
怎么知道函数参数是句柄式还是参数式,看help吗?
暖阳

2024-09-26 01:36:05

f是符号类型的数据,fplot不能绘制符号类型的数据,所以出错。