call function, not enough input argument error

2 Ansichten (letzte 30 Tage)
tevzia
tevzia am 2 Jul. 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 Kommentare
the cyclist
the cyclist am 2 Jul. 2013
How do you call this function from your main code?
What is the full error message you get?
tevzia
tevzia am 2 Jul. 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.")

Melden Sie sich an, um zu kommentieren.

Antworten (1)

the cyclist
the cyclist am 2 Jul. 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.

Kategorien

Mehr zu Dates and Time finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by