MATLAB: How should the value of objective function be returned for fmincon

fminconlsqnonlinMATLABobjective

Hello,
I have an objective function that computes the difference between actual and predicted values. The value, f, computed below is returned to fmincon
f = (actual – predicted)
The size of actual and predicted is [ntime, nstate]. i.e ntime is the number of time points and nstate is the number of state variables
For instance, in my case both actal and predicted is of size 500 x 10 ( 500 time observations and 10 variables).
To lsqnonlin which accepts a vector values objective function , I could return `f = (actual – predicted)` directly. But I get an error that says, only a scalar value can be returned from the objective function to fmincon.
I tried the following in fmincon
f = (actual - predicted).*(actual - predicted);
f = sum(f, 'all'); % takes summation over rows (time points) and columns (variables)
But the solver didn't provide an optimal solution
Any suggestions on how to proceed?
Thanks

Best Answer

f = sum((actual(:) - predicted(:)).^2);