call function, not enough input argument error

2 visualizaciones (últimos 30 días)
tevzia
tevzia el 2 de Jul. de 2013
Hello, I try to call function in my main code. However, It says "Not enough input argument" when i call it. here is my code, Could youplease help me what argument i forget to add
%
function [ breedingpopulation ] = calcbreedingpop(nperiods, nstands, area, CVOL, DVOL, breedingpop)
%UNTITLED4 Summary of this function goes here
% Detailed explanation goes here
harvsched=unidrnd(nperiods+1,1,nstands)-1;
harvvol=zeros(nperiods,1);
for istand = 1:nstands
harvper=harvsched(istand);
if harvper >0
harvvol(harvper) = harvvol(harvper) + area(istand) * (CVOL(istand,harvper)+ DVOL(istand,harvper));
end
end
totvol = sum (harvvol);
penalty = calcPenalty(harvvol,harvgoal,underpweight,overpweight,nperiods, npv, npvgoal, unpvweight, onpvweight);
breedingpop(i).time=time;
breedingpop(i).penalty=penalty;
breedingpop(i).sched=harvsched;
bestsched=harvsched
end
% code
  2 comentarios
the cyclist
the cyclist el 2 de Jul. de 2013
How do you call this function from your main code?
What is the full error message you get?
tevzia
tevzia el 2 de Jul. de 2013
I call it like this
%
breedingpopulation = calcbreedingpop(nperiods, nstands, area, CVOL, DVOL, breedingpop)
%
Error using breedingpop (line 6) Not enough input arguments.
Error in genetic_code (line 28) breedingpopulation = calcbreedingpop(nperiods, nstands, area, CVOL, DVOL, breedingpop)
There is a nested fucntion (calcPenalty) I wasnt sure if i set other function as an argument. like:
%
function [ breedingpopulation ] = calcbreedingpop(nbreeding, nperiods, nstands, calcPenalty, breedingpop)
%
but this time calcPenalty functiojn gives an error (" Error using calcPenalty (line 4) Not enough input arguments.")

Iniciar sesión para comentar.

Respuestas (1)

the cyclist
the cyclist el 2 de Jul. de 2013
No, you should not put the nested functions in the argument list.
In the calling function, is breedingpop a function or a variable? I think the problem is that when you call
breedingpopulation = calcbreedingpop(nperiods, nstands, area, CVOL, DVOL, breedingpop)
your code believes that breedingpop is a function that is itself expecting some inputs.

Categorías

Más información sobre Dates and Time en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by