همان طور که میدانید، m-file ها، حاوی سورس کدهایی به زبان متلب هستند. یعنی برنامه ها را داخل این فایل مینویسیم.
گاهی داخل یک m-file مجبوریم یک سری دستورات را برای پیدا کردن یک مقدار خاص تکرار کنیم. این جور مواقع برای آن دستور یک تابع تعریف می کنیم و از این به بعد به جای تکرار دستورات، فقط نام تابع را می نویسیم.
در ادامه با روش تعریف تابع در متلب و استفاده از آن آشنا میشوید.
فرم کلی تعریف تابع در متلب:
function [z]=functionName(arg1,arg2,...) z=result;
متغیر z، متغیری است که نتیجه ی خروجی تابع را باید در آن ذخیره کنیم. functionName نام تابع است. arg1…n آرگومان ها یا همان ورودی های تابع هستند. مثلا تابع سینوس یک ورودی دارد که همان کمان است.
sin(x)
تابع floor یک ورودی دارد که همان عددی است که میخواهیم جزء صحیح آن را محاسبه کنیم.
floor(x)
تابع ave دو ورودی دارد که همان اعدادی است که میخواهیم میانگین آن ها را محاسبه کنیم و …
مثلا فرض کنید میخواهیم تابعی با نام add تعریف کنیم که دو عدد x و y را بگیرد و جمع آن ها را برگرداند.
function [z]=add(x,y) z=x+y;
مثلا فرض کنید میخواهیم تابعی با نام ave تعریف کنیم که دو عدد x و y را بگیرد و میانگین آن ها را برگرداند.
function [z]=average(x,y) z=(x+y)/2;
مثلا فرض کنید میخواهیم تابعی با نام ave تعریف کنیم که چهار عدد a و b و c و d را بگیرد و میانگین آن ها را برگرداند.
function [z]=aveFour(a,b,c,d) z=(a+b+c+d)/4;
مثلا فرض کنید میخواهیم تابعی با نام npi تعریف کنیم که عدد n را بگیرد و مقدار n*pi را برگرداند.
function [z]=npi(n) z=n*pi;
بعد از این که تابع را در m-file ها ذخیره کردید، حالا میتوانید در خط دستور متلب مانند مثال های زیر از آن ها استفاده کنید.
add(34,4) >38
f=aveFour(20,20,17,19) >f = 18.24
نویسنده: سینا مرادی
منبع: سامینتک
باسلام من کد زیر را در متلب مینویسم ولی با ارور require more input arguments to run مواجه میشم ممنون میشم کمکم کنید.
function [z]=myfun(x)
a=[100,50,80];
b=[0.1,0.4,0.1];
c=[10,10,25];
d=[0.6,0.8,0.4];
z(x)=sum(a.*(1-exp(-b.*x))-(c.*x.^d));
end
سلام
شما که نباید تابع رو اجرا کنید!
باید برین توی مثلا خط فرمان متلب و تابع رو فراخوانی کنید ، مثلا اینطوری:
myfunc(10)