MATLAB: Attempt to execute SCRIPT varargin as a function

attempt to execute script varargin as a function

when i run my function i get
Attempt to execute SCRIPT varargin as a function:
C:\Program Files\MATLAB\R2018a\toolbox\matlab\lang\varargin.m
I dont know what im doing wrong im very new to matlab and dont completely unerstand how varargin and varargout work). Thanks
function [C]=calculerCharges_2(coefs,varargin)
for i=1:11:length(varargin)
varargin{i+1}=input('Entrez l''âge de la personne');
s=input('Entrez le sexe de la personne (m ou f)','s');
if s=='f'
varargin{i+1}=1;
varargin{i+2}=0;
else
varargin{i+1}=0;
varargin{i+2}=1;
end
varargin{i+3}=input('Entrez son IMC');
varargin{i+4}=input('Entrez le nombre d’enfants que cette personne a');
f=input('Cette personne fume-t-elle ? (o ou n)','s');
if f=='n'
varargin{i+5}=0;
varargin{i+6}=1;
else
varargin{i+5}=1;
varargin{i+6}=0;
end
r=input('Où vit-elle ? (ne, nw, sw, se)','s');
if strcmp(r,'ne')
varargin{i+7}=1;
varargin{i+8}=0;
varargin{i+9}=0;
varargin{i+10}=0;
elseif strcmp(r,'nw')
varargin{i+7}=0;
varargin{i+8}=1;
varargin{i+9}=0;
varargin{i+10}=0;
elseif strcmp(r,'sw')
varargin{i+7}=0;
varargin{i+8}=0;
varargin{i+9}=1;
varargin{i+10}=0;
elseif strcmp(r,'ne')
varargin{i+7}=0;
varargin{i+8}=0;
varargin{i+9}=0;
varargin{i+10}=1;
end
end
v=cell2mat(varargin);
C=v*coefs;
end

Best Answer

You are attempting to use varargin inside a script. varargin is only defined inside a function.
Perhaps your line
[C]=calculerCharges_2(coefs,varargin)
should be
function [C]=calculerCharges_2(coefs,varargin)
so that you would be defining a function.
I notice you have
for i=1:size(varargin,1)
varargin is always either empty, with size 0 0, or else is a row vector, size 1 x number of arguments. Therefore, size(varargin,1) will be either 0 (no arguments) or 1 (non-empty row vectors have one row no matter how many elements are in the row.)