I have multiple objective functions F1(x), F2(x), F3(x), ... Fn(x) that I would like to use fgoalattain to optimize simultaneously.
I have tried putting the objective functions in a cell array function handle:
fun = cellstr(string);
fun = cellfun(@str2func, fun, 'UniformOutput', false);
'string' is a cell array of strings which corresponds to function names (m files).
Each objective function has an associated goal and weight, such that length(fun) == length(goal) == length(weight)
Then I tried to call fgoalattain:
[x,fval] = fgoalattain(@(x)fun(x,par1, par2, par3, par4),x0,goal,weight)
However I get the following error:
Index in position 1 is invalid. Array indices must be positive integers or logical values.
Would anyone be able to help me with this optimization problem?