MATLAB: “Error: not enough input arguments” even though all input arguments are in workspace.

functionmatlab functionsyntaxtaylor series

I use the function below and I have all input arguments in the workspace (f as function, x, y). It asks me to define f, x, and y when I press run and when I fill these in it works. This really irritates me!! Thanks in advance.
function [G] = TaylorSeries(f, x, y)
syms x y
G = f;
display(G)
end

Best Answer

When you run a function, MATLAB never looks inside the workspace of the place it was invoked from in order to try to locate variables whose names just happen to match the name of the parameter given in the function definition. You always have to pass the values into the function, such as going to the command line and invoking
f = @(x, y) sin(x) - 2*cos(2*y) + tan(x.*y);
x = 1.234;
y = 8.765;
TaylorSeries(f, x, y)
Related Question