توابع فرعی و اصلی
توابع فرعی و اصلی
هر تابعی نسبت به تابع مستعار باید درون یک فایل تعریف شود.هر تابع فایل شامل تابع اصلی موردنیاز است که اول دیدار می شودو هر تعداد تابع – فرعی اختیاری بعد از تابع اصلی می آید و استفاده می شود.
توابع اصلی می تواند خارج از فایل تعریف شده آن ها فراخوانی شود،در هریک از خط فرمان یا توابع دیگر، اما توابع فرعی نمی توانند با خط فرمان یا دیگر توابع ،خارج از فایل تابع فراخوانی شوند.
توابع فرعی تنها با توابع اصلی قابل مشاهده اند و دیگر توابع فرعی مطابق با فایل توابع آن ها تعریف می شوند.
مثال
اجازه دهید تابعی با نام quadratic بنویسیم که ریشه معادل quadratic را محاسبه می کند.این تابع سه ورودی ، co – efficient quadratic،co- efficient خطی و تابع فرعی disc را میگیرد، که جداگانه محاسبه می شوند.
یک فایل تابع quadratic.m ایجاد نمایید و کد زیر را در آن تایپ کنید:
function[xl,x2]= quadratic(a,b,c)
%thisfunction returns the roots of
% a quadratic equation.
%lt takes 3 input arguments
% which are the co-efficients of x2, x and the
%constant term
%lt returns the roots
d = disc(a,b,c);
xl =(-b + d)/(2*a);
x2 = )-b – dl / (2*a);
end%end of quadratic
function dis = disc(a,b,c)
%function calculates the discriminant
dis = sqrt(b^2-4*a*c);
end%end of sub-function
شما می توانید تابع بالا را از خط فرمان فراخوانی کنید:
quadratic(2,4,-4)
متلب دستورات بالا را اجرا خواهد کرد و نتایج زیر را برمیگرداند:
توابع تو در تو
شما می توانید تابعی درون بدنه تابع دیگر تعریف کنید.آن ها توابع تو در تو نامیده می شوند.تابع تو در تو a شامل هر یا تمامی اجزای تابع ذدیگری است.
توابع تو در تو در حوزه ای از توابع دیگر تعریف شده اند و آن ها دسترسی به فضای کاری توابع در برگرفته را به اشتراک می گذارند.
تابع تو در تو با نحوه اجرا در متلبزیر در ادامه آمده است: