پاس دادن داده ها در متلب

چاپ

 پاس دادن داده ها به داخل تابع

تابع ()SayHello که در مقاله ی قبلی ایجاد کردیم، کمی دارای محدودیت است. برای اینکه تابع ()SayHello را کمی انعطاف پذیرتر کنیم، نیاز داریم تا مقداری داده را بعنوان یک آرگومان ورودی، به آن وارد کنیم. گام های زیر، به شما کمک می کنند تا تابع ()SayHello را تغییر دهید، به طوری که آرگومان های ورودی را بپذیرد:

1. ابتدا بر روی مثلث کوچک، که در پنجره ی Editor و در زیر دکمه ی Save در تب Editor قرار دارد کلیک کنید و سپس گزینه ی Save As را انتخاب کنید.

 خواهید دید که یک کادر محاوره ای باز می شود که می توانید یک فایل را برای محل ذخیره انتخاب کنید( به عکس 9.8 توجه کنید).


2. در قسمت File Name از کادر باز شده، عبارت SayHello2.m را تایپ کنید و بر روی دکمه ی Save کلیک کند.

با انجام این کار، متلب تابعی که شما از قبل ایجاد کرده بودید را با یک نام جدید، ذخیره می کند. 


3. اکنون نام خود تابع را از SayHello به SayHello2 تغییر دهید. 


4. حالا آرگومان ورودی Name را به این تابع اضافه کنید. بنابراین تابع به شکل زیر در می آید:

اکنون خواهید دید که عبارت Name به رنگ نارنجی در می آید. این بدان معنی است که شما از آن، هنوز در جایی استفاده نکرده اید. وقتی که تغییرات را اعمال کنیم، این رنگ نارنجی نیز از بین خواهد رفت. 

پنجره ی Editor، همواره وقتی که یک مشکل را در کدهای شما مشاهده می کند، یک رنگ پس زمینه ی نارنجی را ایجاد می کند. 

5. اکنون تابع ()disp را به صورت زیر تغییر دهید:

همان طور که مشاهده می کنید، اکنون تابع ()disp از عملگر الحاق، که در فصل 8 توضیح داده شد، برای الحاق متن و آرگومان ورودی، استفاده می کند. با انجا این کارها، خروجی تابع ما، بیشتر شخصی سازی شده است. 


6. بر روی دکمه ی Run کلیک کنید. 

با انجام این کار، متلب یک پیام را نشان می دهد که به شما اطلاع می دهد که تابع ()SayHello2 به یک ورودی احتیاج دارد. این موضوع در عکس 9.10 نشان داده شده است. 

هر بار که شما برای اجرای تابع، بر روی دکمه ی Run کلیک کنید، این پیغام را مشاهده خواهید کرد. زیرا تابع ها برخلاف اسکریپت ها، اطلاعات آرگومان ها را ذخیره نمی کنند. 


7. اکنون 'Ann' را بعنوان آرگومان ورودی،  تایپ کنید و کلید Enter را فشار دهید. 

یک خروجی مانند زیر را مشاهده خواهید نمود:


8. در پنجره ی Command (پنجره ی فرمان)، عبارت SayHello2('Josh') را تایپ کنید و کلید Enter را فشار دهید. 

سپس خروجی را همان طور که از آن انتظار می رود، مشاهده خواهید کرد. 


پاس دادن داده به بیرون از تابع

هنگامی که توابع، داده ها را مورد تحلیل قرار می دهند، خروجی را به فراخواننده، برمی گردانند. فراخواننده در واقع کدی است که تابع را مورد فراخونی قرار می دهد. گام های زیر به شما کمک می کنند تا تابع ()SayHello2 را به روز کنید، تا رشته ای که تولید می کند را برگرداند: 

1. در پنجره ی Editor و در تب Editor، بر روی علامت جهت کوچک، که در زیر گزینه ی Save قرار دارد کلیک کنید و گزینه ی Save As را انتخاب کنید.

با انجام این کار خواهید دید که کادر محاوره ای Save As برای انتخاب یک فایل برای ذخیره کردن، باز می شود( طبق عکس 9.8).


2. در فیلد File Name، عبارت SayHello3.m را تایپ کنید و بر روی Save کلیک کنید. 

این کار باعث می شود که تابعی که قبلا ایجاد کردیم، با یک نام دیگر ذخیره شود. 


3. اکنون نام خود تابع را (در درون کدها) از SayHello2 به SayHello3 تغییر دهید.

با انجام این کار خواهید دید که رنگ نارنجی، هنگامی که شما اشاره گر ماوس را در دیگر مکان ها قرار می دهید، محو می شود.  



4. اکنون قبل از نام تابع، در بین براکت ها، عبارت HelloString را تایپ کنید. بنابراین عنوان تابع ما به صورت زیر درمی آید:

اکنون تابع ما، یک مقدار را به فراخواننده ی خود برمی گرداند. اما شما دوباره با یک رنگ نارنجی در ادیتور مواجه خواهید شد. این بدان دلیل است که تابع ()SayHello3 هنوز مقداری را به HelloString انتساب نداده است.


5. تابع خود را تغییر دهید، به طوری که مقداری را به HelloString انتساب دهید، مانند زیر:

اکنون، تابع مورد نظر، یک مقدار را به HelloString انتساب می دهد و سپس از این مقدار برای ایجاد خروجی استفاده می کند. و همچنین خروجی را به فراخواننده برمی گرداند. 


6. اکنون تغییراتی که ایجاد کرده اید را ذخیره کنید. 


7. اکنون عبارت Output = SayHello3('Ambrose') را در پنجره ی command(فرمان) وارد کنید و کلید Enter را فشار دهید. 

خروجی به صورت زیر خواهد بود:


8. عبارت disp(Output) را در پنجره ی Command تایپ کنید و کلید Enter را فشار دهید.

با انجام این کار، خوش آمد گویی را بعنوان خروجی، مشاهده خواهید کرد.