I wanted to share what i got so far and how i did it:
%generate matrix of log_moneyness and ttm
A = [log_moneyness maturity];
xdata = A;
ydata = implied_volatility;
%create function
fun = @(x,xdata) (x(1)+x(2).*xdata(:,2)) + (x(3)+x(4).*xdata(:,2)).*((x(5)+x(6).*xdata(:,2)).* (xdata(:,1) -(x(7)+x(8).*xdata(:,2))) + ... sqrt((xdata(:,1) - (x(7)+x(8).*xdata(:,2)).^2 + (x(9)+x(10).*xdata(:,2)).^2)));
%Fit the model using the starting point from former parameter estimation
%via SVI
x0 = [0.000202758890760171 0.000202758890760171 -0.249601998773279 -0.249601998773279 ...
0.5 0.5 0.0114 0.0114 1.73380716030294e-05 1.73380716030294e-05];
opt = optimoptions (@lsqcurvefit, 'StepTolerance', 1e-10);
x = lsqcurvefit (fun,x0,xdata,ydata,[],[],opt);
This gives me my 10 parameters. However, the estimates are not that close to what i hoped they would be. Is there a way of fitting them even closer to my observations? I would like to use a function like the 'Argmin' function, but have not had any luck yet. All the best to you.