Not enough input arguments
Info
This question is closed. Reopen it to edit or answer.
Show older comments
Hi, I try to create a genetic algorithm model and i try to create a fitness function to calculate fitness of every child. However, Matlab gives a function input error.
Here is the code that I wrote so far,
_
function [ fitness ] = calcfitness( breedingpop, nbreeding, penalty )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
for i=1:nbreeding
fitness = (breedingpop(nbreeding).penalty - breedingpop(i).penalty) / (breedingpop(nbreeding).penalty - breedingpop(1).penaltybreedingpop)
end
i know "penalty" is not the correct way to add as an argument. Does anyone have any idea how I could add penalty as an argument. Thanks
Answers (1)
Azzi Abdelmalek
on 21 Jun 2013
Edited: Azzi Abdelmalek
on 21 Jun 2013
function [ fitness ] = calcfitness( breedingpop, nbreeding, penalty )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
for i=1:nbreeding
fitness = (breedingpop(nbreeding).(penalty) - breedingpop(i).penalty) / (breedingpop(nbreeding).(penalty) - breedingpop(1).penaltybreedingpop)
end
penalty should be a strindg
6 Comments
tevzia
on 21 Jun 2013
Azzi Abdelmalek
on 21 Jun 2013
Did you read my answer?
use
breedingpop(nbreeding).(penalty) % instead of
breedingpop(nbreeding).penalty
tevzia
on 21 Jun 2013
Azzi Abdelmalek
on 21 Jun 2013
How did you call your function?
tevzia
on 21 Jun 2013
Azzi Abdelmalek
on 21 Jun 2013
penalty should be a string
childfitness = calcfitness(breedingpop, nbreeding, 'penalty' )
This question is closed.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!