با سلام
تابع برازندگي من به صورت زير هستش
[IMG]

[/IMG]
و من اونو در متلب به صورت يك تابع به صورت زير نوشتم.
function z = My_Fun(x,y,k)
if x==y
p1=0;
else
p1=abs(x-y);
end
if x==k
p2=0;
else
p2=abs(x-k);
end
if k==y
p3=0;
else
p3=abs(k-y);
end
p4=max(p1,p2);
z=max(p4,p3);
end
اما وقتي كه ميخوام داخل الگوريتم رقابت استعماري استفاده كنم خطاي زيرو ميده.اگه امكان داره بهم كمك كنيد تا اين اشكال رفع بشه. 
Error using My_Fun (line3( 
Not enough input arguments.
Error in ImperialistCompetitveAlgorithm_GlobalOptimizationS  trategy (line 81(
    InitialCost = feval(ProblemParams.CostFuncName,InitialCountries(  ;