MATLAB: Cellfunc

cellfunc

I am trying to create a function from R^n to R^n such that I can evaluate that function and eventually compute the gradient. Here is what i wrote (a modification of one of the post): f1=@(x_1,x_2) (x_1-2)^2+x_2;
f2=@(x_1,x_2) sqrt(x_2-1);
ff = {f1; f2};
F = @(x) cellfun(@feval,ff(:),num2cell(x(:)));
F([2 2]) But I am getting the following error: ??? Input argument "x_2" is undefined. Error in ==> @(x_1,x_2)(x_1-2)^2+x_2
Error in ==> @(x)cellfun(@feval,ff(:),num2cell(x(:)))
What am I doing wrong?
Thanks for your help in advance!

Best Answer

f1=@(x_1,x_2) (x_1-2)^2+x_2;
f2=@(x_1,x_2) sqrt(x_2-1);
ff = {f1; f2};
x = [5 7];
F = @(x)cellfun(@(x,y)x(y{:}),ff,repmat({num2cell(x)},2,1));
F(x)