نکاتی پیرامون توابع و تابع کاربر_ متلب (قسمت سوم)

تابعِ تابع

گیره تابع feval() ، function handle

اگر در مقابل نام تابع علامت @ بیاید گیره آن تابع را ایجاد کردهایم (چیزی شبیه اشاره گر pointer در C++)، برای feval()  استفاده کنیم مفهوم گیره امکان استفاده از تابعی به عنوان آرگومان تابع دیگر را فراهم میکند و از توانائیهای مهم متلب محسوب میشود.

مثال ها:
نسبت دادن گیره تابع به متغیر دیگر

>> hs = @sin;
>> feval(hs,pi/6)

 جواب

ans = 0.5000

 کاربرد مستقیم گیره تابع

>> feval(@sin,pi/6)

 جواب

ans = 0.5000

 تابعِ تابعِ کاربر- تعریف

توابعی که تابع دیگری را به عنوان آرگومان میپذیرند تابعِ تابع نام دارند و آرگومان آنها می تواند یک گیره تابع باشد. به
تابعِ تابع کاربر- تعریف مثال توجه کنید.

مثال:

یک فایل تابعی ایجاد میکنیم که آرگومان ورودیش تابع دیگری باشد.
یک تابع به نام yd.m مینویسیم که جواب معادلههای درجه دو و سه را برای مقدار معینی از x  برگرداند.
function [p2,p3] = yd(x)
p2 = x.^2 + x ;
p3 = x.^3 + x.^2 + x;
 حالا فایل تابعی ydh.m را ایجاد میکنیم که آرگومانش تابع فوق است:
function [out1, out2] = ydh(hy,x)
[out1 out2] = feval(hy,x);
%باید گیره تابع باشد.  hy
>> [a b] = ydh(@yd,1)
>> x = [1 2];
>> [a b] = ydh(@yd,x)

 جواب

a = 2
b = 3
a = 2 6
b = 3 14

 تابع تابع کتاب خانه ای

توابع کتاب خانه ای که تابع دیگری را به عنوان آرگومان میپذیرند تابعِ تابع نام دارند و آرگومان آنها می تواند یک تابع inline رشته، یا گیره باشد. برخی از اینگونه توابع عبارتند از: .fplot(), ezplot, feval

مثال ها:

رسم sin^3x به صورت تابعِ تابع

>> isn = inline('(sin(x))^3');
>> fplot(isn,[-pi pi])
>> ezplot(isn)

 رسم تابع humps(x) (از توابع نمونه داخلی متلب)

برای اطلاع بیشتر در مورد این تابع از پنجره فرمان help humps را اجرا کنید.

مثال ها:
فراخوانی مستقیم گیره

>> fplot(@humps,[0 1])

 نسبت دادن به یک مغیر رشتهای

>> hu = 'humps(x)';
>> fplot(hu,[0 1])

 

لینک کوتاه شده مطلب: http://www.esfandune.ir/JKjs7

پسور فایل ها: esfandune.ir یا www.esfandune.ir می باشد

درباره مهندس ذرقانی

ما را دنبال کنید:


آموزش های پیشنهادی سایت (نمایش همه):


نظر خود را بیان کنید

بسته آموزشی زمستانه فارسی اندروید
تخفیف نورورزی
تخفیف سورس اینستا
تخفیف سورس اینستا
تخفیف سورس اینستا
تخفیف سورس اینستا
تخفیف سورس اینستا
تخفیف سورس اینستا
بسته آموزشی زمستانه فارسی اندروید
آموزش برنامه نویسی اندروید با کاتلین