نقل قول:
	
	
		| 
					نوشته اصلي بوسيله slicing  با سلاممن كدي كه شما بهم كمك كرديد رو در متلب به صورت يك تابع  به صورت زير نوشتم.
 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
 | 
	
 سلام
این زیر برنامه درست کار میکنه
من این زیر تابع را در یک m فایل ذخیره کردم (کپی و پیست کردم)
بعد از اینکه ذخیره کردم به نام My_fun
در سطر فرمان متلب نوشتم
My_fun(2,4,6)
که اجرا شد و خروجی 4 را داد
اشکال شما مثل اینکه در خود برنامه اصلی است نه زیرتابع مذکور
در ضمن به جای استفاده از max به دفعات میتونی این دستوراتو بنویسی
p4=[p1,p2,p3]
z=max(p4)