ایجاد تابع با مثال product در متلب(جلسه پنجاه و پنج)

ایجاد function با نام product

با سری آموزش های متلب مقدماتی در خدمت شما علاقمندان هستیم. با ما در این جلسه از آموزش متلب همراه باشید.

سفارش پروژه متلب از جمله پروژه‌هایی است که در سایت کارت پروژه طرفداران بسیاری داشته و میتوان جهت ثبت سفارش کلیک نمائید.

ایجاد تابع با مثال product در متلب

در اینجا می‌خواهیم یک function بسازیم که برای مثال نام آن product است، این  function می‌خواهد ۴ تا ورودی دریافت کند و ۴ ورودی خودش را در هم ضرب کند.

ایجاد تابع product
ایجاد تابع product
ویرایش نام تابع
ویرایش نام تابع
تغییر نام به product
تغییر نام به product
بازکردن تابع
بازکردن تابع

پس مانند همیشه که function را می‌ساختیم، یک function می‌نویسیم و خروجی function ما برای مثال p است. نام function هم product است و ورودی‌های آن هم a و b و c و d هستند.

کاری که function می‌کند این است که ورودی‌ها را در هم ضرب می‌کند. حال برای اینکه ماتریس‌ها را هم بتواند ضرب کند، یک dot (.) هم قرار می‌دهیم که بتواند این کار را انجام دهد.

p = a.*b.*c.*d

این کاری است که تابع ما دارد انجام می‌دهد و  در آخر end را داریم.

الان ما تابع را ساختیم و در command window تابع را فرامی‌خوانیم و می‌گوییم که مثلاً خروجی تابع را برای ورودی‌های ۲ و ۳ و ۴ و ۵ محاسبه کند.

فراخوانی تابع در command window و نمایش خروجی
فراخوانی تابع در command window و نمایش خروجی

مشاهده می‌کنید که تمام این ورودی‌‌ها را در هم ضرب کرده است. ۱۲۰=۴×۵×۳×۲×۱

حال اگر در اینجا یک ورودی مانند عدد ۷ به آن اضافه کنیم، می‌گوید که چنین چیزی وجود ندارد.

اضافه کردن عدد 7 به ورودی
اضافه کردن عدد 7 به ورودی

چه کاری انجام دهیم که ما هر چند تا ورودی که خواستیم در اینجا وارد کنیم، این function کار کند؟ شما چه راه حلی برای این مسئله دارید؟

در اینجا است که باید از  (variable argument input) varargin استفاده کنیم.

هرگاه خواستید بی‌نهایت ورودی داشته باشید، باید از varargin استفاده کنید. اما varargin چیست؟

اولا در خط اول به جای ورودی‌ها باید varargin را بنویسیم.

استفاده ازvarargin  برای ورودی بی نهایت
استفاده ازvarargin برای ورودی بی نهایت

برای اینکه بدانیم varargin چه کاری انجام می‌دهد، ابتدا در خط دوم برنامه، p را با خود varargin برابر می‌کنیم.

برابر قراردادن p باvarargin
برابر قراردادن p باvarargin
زرد شدن خط 2 در کد
زرد شدن خط 2 در کد

حال می‌خواهیم بدانیم که برای مثال با اضافه کردن ورودی ۷ چه جوابی را به ما می‌دهد.

اضافه کردن عدد 7 در ورودی
اضافه کردن عدد 7 در ورودی

مشاهده می‌کنید که جواب ما یک آرایه‌ی سلولی از جنس سلول شده است و pهای ما در workspace همه از جنس cell هستند.

نمایش سلول
نمایش سلول

حال به سادگی می‌توانیم چیزی که می‌خواهیم را تعریف کنیم. اولا برای p المان اول را تعریف می‌کنیم که اولین المان ۱ است. سپس از حلقه‌ی for استفاده می‌کنیم و برای i از ۲ تا numel(varargin)

شاید متوجه نشده باشید که در بالا چه نوشتیم. معنی numel(varargin) چیست؟ اکنون در مورد آن توضیح می‌دهیم.

numel تعداد اعضا را به ما می‌دهد. شما فرض کنید ما B را داریم که اعضای آن ۲ و ۳ و ۷ و۸ و۹ باشند. تعداد اعضای آن ۵ تاست. پس اگر بخواهیم تعداد اعضا را بدانیم که چندتاست، باید بگوییم numel یعنی number of element

یعنی تعداد المان‌های اعضای ما چندتاست.

تایپ کردنnumel برای دانستن تعداد اعضا
تایپ کردنnumel برای دانستن تعداد اعضا
فراخوانی (B)numel
فراخوانی (B)numel
تایپ clear و clc برای پاک کردن برنامه
تایپ clear و clc برای پاک کردن برنامه

مشاهده می‌کنید که ۵ تا عضو دارد و در Editor هم اگر مشاهده کنید، numel(varargin) یعنی تعداد اعضایی که ما وارد کردیم را می‌دهد. خودمان نمی‌دانیم چند تا وارد کردیم. پس به همین دلیل به این صورت نوشتیم که هر گاه ۴ تا اعضا در اینجا وارد کردیم، این عدد ۴ می‌شود و ۲ تا ۴ را محاسبه می‌کند. اگر ۲۰ را زد، ۲ تا ۲۰ را حساب می‌کند.

بعد از آن باید بنویسیم p = p.* varargin(i) یعنی هرچند تا که در اینجا اعضا داشتیم، ضرب در آن می‌شود.

یک end هم برای for قرار می‌دهیم.

تایپ کردن دستورp = p.* varargin(i)
تایپ کردن دستورp = p.* varargin(i)

برای مثال product(1,2,3) را می‌خواهیم محاسبه کنیم.

محاسبه product(1,2,3)
محاسبه product(1,2,3)
نمایش نتیجه
نمایش نتیجه

مشاهده می‌کنید که جواب ۶ را به ما داده است که همان حاصل ضرب ۳×۲×۱ است.

حال می‌خواهیم ۷ و ۸ و ۹ را هم به ورودی‌های ۱ و ۲ و ۳ اضافه کنیم.

اضافه کردن 7و8و9  به ورودی
اضافه کردن 7و8و9 به ورودی

مشاهده می‌کنید که در اینجا اگر در صفر هم ضرب شود، جواب صفر می‌شود.

ضرب اعضا در صفر
ضرب اعضا در صفر
نمایش نتیجه ضرب
نمایش نتیجه ضرب

همین‌طور می‌توانیم برای هر تعدادی که می‌خواهیم این function را اجرا کنیم و تابعی که تعریف شده است، تعدادی نامحدود ورودی می‌گیرد. شما هر چند تا که بخواهید می‌توانید ورودی بدهید و اضافه و کم کنید.

در این جلسه در خصوص تابع product مطالبی خدمتتان ارائه گردید.با ادامه آموزش ها در جلسات آتی با ما همراه باشید.