آموزش نرم افزار متلب برای رشته برق – تفاوت بین توابع و عبارات
در این بخش تفاوت بین عبارات expression و توابع function بیان می شود.
تفاوت بین توابع و عبارات
به حال از کلمات expressionو function بدون این که بحث دقیقی در مورد تفاوت آن ها شود، استفاده شده است. اگر f(x)=x2+1 تعریف شود، f (بدون هیچ ورودی مشخصی) یک تابع است در حالی که f(x) و x2+1 عباراتی شامل متغیر x هستند. در مباحث ریاضی معمولاً این تفاوت با تابع نامیدن f(x) یا x2+1 ازبین می رود، اما در متلب سایت سیم پاور تفاوت بین expression و function مهم است.
در متلب سایت سیم پاور یک expression می تواند به هرکدام از کلاس داده های نمادین یا رشته تعلق داشته باشد. مثال زیر را در نظر بگیرید.
f= ́x^2+1 ́; f(3) <<
ans = 2
اگر انتظار داشته باشید f مانند یک تابع عمل کند، نتیجه بدست آمده باعث تعجب خواهد شد، زیرا fیک رشته است. f(3) کاراکتر سوم در fرا مشخص می کند که در اینجا 2است. f(4) علامت + را می دهد و تایپ f(-1) باعث ایجاد پیغام خطا خواهد شد. راه رسیدن به جواب در مثال بالا استفاده از دستور eval است، دستوری که مقدا یک رشته یا عبارت نمادین را به ازای هر مقداری که به متغیر اختصاص داده شود محاسبه می کند.
x=3; eval(f) <<
ans= 10
وارد کردن f به جای eval(f)در مثال فوق، فرم حقیقی fرا بدون جایگذاری 3 برای xو محاسبه نتیجه آن خواهد…. . می توان برای تعریف یک تابع از خروجی دستور نمادین از evalاستفاده کرد. همچنین همانگونه که در سایت سیم پاور توضیح دادم با استفاده از دستور subمی توان مقدار یک متغیر را در یک expressionقرار داد.
تعریف توابع
دو راه برای تعریف توابع بیان شد: در خط فرمان، با استفاده از @ )برای ایجاد یک (anonymous function یا inline و یا با استفاده از M-Fileمی توان تابع را تعریف کرد. اغلب برای توابع ساده ای که می توان آن ها را در یک… تعریف کرد یا برای برگرداندن خروجی یک دستور نمادین به تابع از روش اول استفاده می شود. اما روش دوم برای تعریف توابعی که به چندین دستور واسط برای محاسبه خروجی نیاز دارند مناسب است.
یک تفاوت مهم بین رشته و عبارت نمادین در متلب سایت سیم پاور این است که متلب سایت سیم پاور به طور خودکار توابع تعریف شده توسط کاربر و متغیرها را در عبارات نمادینی که تایپ می شود جایگذاری می کند، اما در مورد رشته ها این موضوع صادق نیست. به مثال زیر توجه کنید:
h=@(t) t.^3; int( ́h(t) ́, ́t ́)<<
) Error using char/int (line 9
The method char/int will be removed in a future release. Use sym/int instesd. For example
.Int(sym( ́x^2 ́))
متلب سایت سیم پاور نمی تواند این انتگرال را محاسبه کند، زیرا درون رشته hبه یک تابع نامشخص وابسته است. اگر h … ورودی درون intبه طور نمادین قرار داده شود، آنگاه متلب سایت سیم پاور مقادیر قبلی hرا قبل از انتگرال گیری جایگزین می کند.
برای دانلود این آموزش به صورت پی دی اف بر روی لینک زیر کلیک کنید.