Matlab fplot输入争论不足

时间:2018-09-03 17:56:25

标签: matlab

我刚刚开始学习Matlab,并且我一直在寻找很多解决方案。

基本上,我只需要先绘制一个函数,然后再对其进行操作,以解决以后的问题。

fplot(@(x) myfunc);

function y = myfunc(x)
    y = (x^3) - (4 .* x^2) - 1
end

产生此错误

Warning: Function behaves unexpectedly on array inputs. To improve performance,
properly vectorize your function to return an output with the same size and shape as
the input arguments. 
> 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)
  In HWA1_2 (line 1) 
Warning: Error updating FunctionLine.

 The following error was reported evaluating the function in FunctionLine update: Not
 enough input arguments.

当我自己单独使用fplot时,它可以工作。

fplot((x^3)-(4*x^2)-1)

如果有人能指出我在做什么错,我将非常感激。我需要将其定义为函数的原因是因为以后需要对它进行更多的操作。

1 个答案:

答案 0 :(得分:1)

您调用fplot的语法是问题,而不是您的函数。如果要传递简单的函数句柄,请使用:

filenames = [
    f'C:/Users/Jangsu/Desktop/Sample data{i}.csv'
    for i in range(1, 4)
]

df = pd.concat(
    map(pd.read_csv, filenames), 
    axis=1, 
    ignore_index=False
)

您使用的语法是创建anonymous function的方式,但是您忘了在方程式中包含fplot(@myfunc) 。您也可以这样写,并得到相同的结果:

x