نقل قول:
نوشته اصلي بوسيله 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)