Defining objective function using nested functions (Genetic Algorithm Solver)
조회 수: 6 (최근 30일)
이전 댓글 표시
Hello everyone,
I am trying to do a maximization problem using optimization toolbox genetic algorithm solver. My objective function has parameters so I need to write a nested function(Since i have extra parameters besides from my variables) But i am having a trouble writing it. Here is what my objective function looks like and i wrote so far;
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/938719/image.png)
function z = objectivefunc(x,r,aii)
z= sum(x.*r.*aii, 'all');
end
(I reshaped my matrixes to be a row vector.)
X is my decsision variable and its dimensions are 1*1296 and r and aii are my parameters with dimensions 1*1296. I have looked through the documentation matlab provides and found this one;
I am very new to MATLAB so i really do not know how to write it correctly. So, any ideas or suggestions on how to implement nested functions to my problem?
댓글 수: 3
Torsten
2022년 3월 23일
편집: Torsten
2022년 3월 23일
This problem has nothing to do with nested functions. You pass r and a to objectivefunc - so the two matrices can be accessed there. Maybe in a former version of your code, you did not include r and a in the list of parameters passed to objectivefunc and so someone suggested that you should use nested functions (because r and a are then also visible in objectivefunc although you don't pass them).
If you define the array of initial values for the unknowns x0 for "ga" as a 36x36 matrix, you will find them in objectivefunc also as a 36x36 matrix and you can use Matt's answer to calculate z if r is 36x36 and a is 36x1.
채택된 답변
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Genetic Algorithm에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!