Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

call function, not enough input argument error

Asked by tevzia on 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 Comments

the cyclist on 2 Jul 2013

How do you call this function from your main code?

What is the full error message you get?

tevzia on 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.")

tevzia

Products

No products are associated with this question.

1 Answer

Answer by the cyclist on 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.

0 Comments

the cyclist

Contact us