حلقه if در متلب (آموزش گام به گام و نکات کاربردی)
وقتی نوبت به شبیه سازی کامپیوتری اپلیکیشن ها می رسد، یکی از مهمترین کارها نمایش صحیح یک دستور شرطی است تا مطمئن شویم که مدل های ما به شکل علمی و مهندسی مناسبی ساخته می شوند. دستورهای شرطی خاصی وجود دارند که با استفاده از سیستم باینری به خوبی مدلسازی و با دستور شرطی IF نشان داده می شوند. در اصطلاحات برنامه نویسی از عبارت شرطی IF برای بیان شرایط مورد نظر و ارائه محدودیت هایی برای آن شرایط خاص است.
بعد از طراحی محدویت ها، آنها با شرایط فعلی مقایسه می شوند و کامپیوتر بر اساس واقعیات موجود تصمیم می گیرد که نتیجه چه باشد. نتیجه به دست آمده نمایی از اطلاعات مربوط به دستورالعمل های ارائه شده خواهد بود.
به این مثال از دستور if توجه کنید:
If (x>$25) {print “Thank you for shopping with us”;}
If (x<$25) {print “ Take advantage of better deals, discounts on sales over $25”;}
این مثال درباره استفاده از دستور if در یک فروشگاه خرده فروشی درباره تعیین این است که چه چیزی باید روی رسید چاپ شود.
در ادامه این مطلب برخی از کاربردهای علمی و مهندسی دستور IF و نحوه اجرای این تابع و چند افزونه دیگر در متلب را بررسی خواهیم کرد.
آشنایی با دستور IF
دستور IF یک دستور شرطی است و بر اساس شرایطی که توسط برنامه نویس دیکته می شوند به وجود می آید. بسته به سیستمی که شما در حال ارزیابی اش هستید، ممکن است یک عبارت شرطی ساده برای توصیف سیستم لازم باشد یا یک عبارت پیچیده تر که بتواند به شکل مناسبی سیستم را توصیف کند.
در اینجا یک نحو (Syntax) کلی برای دستورات IF ذکر می کنیم. در مواقعی که یک مورد با چند شرط داریم، از یک نحو چندگانه کلی (Multiple Syntax statement) برای توصیف سیستم استفاده می شود که عبارت است از:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
توصیف سیستم از چیزی که در اینجا نشان داده شد می تواند پیچیده تر باشد، اما این ساختار کلی دستور شرط است.
برای بیان یک دستور شرطی واحد، عبارت شرطی ما به صورت زیر خواهد بود:
If condition Then [ statements ] [ Else [ elsestatements ] ]
آموزش جدید متلبی: روش گوس سایدل در متلب از صفر تا صد
قسمت های مختلف دستور IF
اگر به معادله بالا نگاهی بیندازید متوجه می شوید که دستور IF شامل 3 بخش اصلی و یک پیوست کمکی است که در ادامه هر کدامشان را به طور جداگانه توضیح می دهیم:
1- شرط (condition): عبارت شرط حاوی شرط مورد نظر ما است. بسته به اینکه برنامه چه متفیرهایی را شناسایی می کند، عبارت شرط نشا می دهد که چه چیزی قرار است اجرا شود. برنامه اعتبار عبارت ساخته شده و اینکه آیا شرط برآورده شده یا نه را ارزیابی می کند.
2- then: این کلمه به معنای “سپس” یا “بعد” است و نشان می دهد وقتی محاسبات مربوطه توسط کامپیوتر رمزگشایی شد، مسیری که قرار است طی شود باید چگونه باشد. در عبارات چند شرطی، نوشتن then اختیاری است چون بیشتر از یک متغیر در فرآیند تصمیم گیری نقش دارند.
3- جواب شرط (Statements): جواب شرط عبارتیست که اقداماتی که کامپیوتر باید به محض شناسایی یک شرط انجام بدهد را نشان می دهد. در یک فرایند باینری دو شرط (condition) وجود دارد، اما در یک عبارت چند خطی قبل از تعیین شرایط نهایی، یک سری تصمیمات باید گرفته شود.
4- عبارت شرطی Else IF: این عبارت درست و غلط بودن یک شرط را تشخیص می دهد و دو احتمال برای ما در نظر می گیرد که طی آن اگر احتمال اول برآورده نشد احتمال دوم در نظر گرفته می شود.
چه زمانی از Syntax یک خطی یا چند خطی استفاده می کنیم؟
اینکه مساله ریاضی شما چقدر پیچیده باشد تعیین می کند که باید از Syntax برای دستورات شرطی IF خودتان یک خطی استفاده کنید یا چند خطی. اگر شرایط مورد تجزیه و تحلیل ما ساده باشد، مثلا بخواهیم روشن بودن یا نبودن پمپ ها در یک سیستم را بررسی کنیم، نوشتن یک خط کد ساده بر اساس جریان سیستم کافی است.
در مسائل پیچیده تر مثل فرآیندهای مهندسی شیمی که برای رسیدن به نتیجه به چند فرایند شرطی نیاز دارند، برای تعیین اینکه آیا یک هدف فرآیند برآورده شده یا نه، به کد نویسی چند خطی نیاز داریم.
برای مبتدی ها: معرفی نرم افزار متلب (۴ کاربرد اصلی و ۳ نقطه قوت)
اصول و مبانی دستور if: آموزش مختصر دستور if در متلب
حالا که با تئوری دستور if آشنا شدید، بیایید با هم به احتمالات مختلف برای محاسبات دستور IF در محیط کاربری MATLAB R2018b نگاهی بیندازیم. در شروع کار یک صفحه دستور تازه به شکل زیر برایمان باز می شود. همانطور که می بینید، در محیط کاربری متلب امکانات مختلفی برای تولید و دستکاری کد وجود دارد.
پنجره های مهم برای کار کردن، پنجره های پنجره فرمان در سمت راست صفحه هستند. در همین قسمت است که کد مربوط برای برنامه وارد می شود. در پایین سمت چپ، فضای کاری وجود دارد که در آنجا پاسخها نمایش داده می شوند.
برای محاسبه نتایج یک دستور IF، کد مربوط به دستور را در فرمان وارد می کنیم. متلب در اجرای دستورات شرطی یک سیستم همه کاره به حساب می آید. اولین تابعی که ما در این آموزش روی آن کار می کنیم تابع ساده ای برای زمان اجرای یک بلاک کد است. برای این کار می توانید کد را به دو روش وارد کنید. اول اینکه کد زیر را کپی کرده و در پنجره فرمان قرار داده و آن را تغییر بدهید، و یا اینکه هر چیزی که در قسمت پایینی ارائه شده را بنویسید. بعد از اینکه کد را وارد کردید سیستم شروع به محاسبه خواهد کرد.
متن دستور if برای یک دستور شرطی IF ساده به این صورت است:
% Generate a random number
a = randi(100, 1);% If it is even, divide by 2
if rem(a, 2) == 0
disp(‘a is even’)
b = a/2;
end
با وارد کردن این دستور در پنجره فرمان، نتایج زیر به دست می آید:
این سیستم دو گزینه برای احتمالات عدد A یا B دارد. وقتی برنامه شرایط را ارزیابی کرد، در پنجره سمت چپ، به عنوان پاسخ نهایی دو احتمال برای هر دو عدد نمایش داده می شود.
حتما بخوانید: نکات پایه ای و مهم سیمولینک در نرم افزار متلب
همانطور که قبلا اشاره کردیم متلب می تواند چند گزینه شرطی ارائه کند که در کد چند خطی زیر می توان این مورد را به خوبی دید:
if statements can include alternate choices, using the optional keywords elseif or else. For example:
a = randi(100, 1);
if a < 30
disp(‘small’)
elseif a < 80
disp(‘medium’)
else
disp(‘large’)
end
در این مثال به سیستم اجازه داده می شود تا بر اساس محدودیت هایی که برای آن ارائه شده، رمزگشایی کند که آیا اعداد تصادفی بین 1 و 100 کوچک، متوسط یا بزرگ هستند. اعداد کوچکتر از این شرط کمتر از 30 هستند. اعداد متوسط بین 30 و 80 و اعداد بزرگ بزرگتر از 80، اما کمتر از 100 هستند. سیستم به طور تصادفی اعداد را تولید و تعیین می کند که طبقه بندی نتیجه باید چطور باشد.
مواردی که چند نحو (syntax) دارند به مرور زمان پیچیده می شوند و میزان پیچیدگی کد هم برای مطابقت با شرطها تغییر می کند. برای ساده کردن این الزامات اضافی، متلب عملکردهای بیشتری مثل دستور سوئیچ (switch) دارد که امکان مقایسه متغیرها در یک شرط خاص را فراهم می کند.
دانلود کنید: ۷ درس کاربردی آموزش برنامه نویسی در متلب
مثال زیر یک ارزیابی از روزهای هفته است که در آن مقادیر به همبستگی های از پیش تعیین شده تبدیل می شوند؛ مثلا نزدیک شدن به جمعه یا شنبه نشانه ای از تعطیلات آخر هفته است. این تبدیل ابزاری برای انتقال شرطها از بافت به محل است.
به عنوان مثال:
[dayNum, dayString] = weekday(date, ‘long’, ‘en_US’);
switch dayString
case ‘Monday’
disp(‘Start of the work week’)
case ‘Tuesday’
disp(‘Day 2’)
case ‘Wednesday’
disp(‘Day 3’)
case ‘Thursday’
disp(‘Day 4’)
case ‘Friday’
disp(‘Last day of the work week’)
otherwise
disp(‘Weekend!’)
end
تصویر بالا نتیجه نهایی ورود کد است. دستور IF با امکانات بی نهایتی که در اختیار ما می گذارد، اولین گام برای تعیین این است که آیا شرطهای فرایند ما برآورده شده اند یا نه. در سیستم های ساده، استفاده از نحو تک خطی کافیست؛ اما برای سیستم های پیچیده تر نحو چند خطی لازم است تا نمایش سیستم به طور دقیقی انجام شود.
حتما بخوانید: دانلود رایگان ۱۳ فیلم کاربردی آموزش شبکه عصبی متلب
ویدیوی آموزش if در متلب
جمع بندی
با نگاهی به محاسبات دقیق انجام شده در متلب و پیشینه این برنامه، به راحتی می توان گفت که MATLAB R2018b ابزار شبیه سازی بسیار قدرتمندی است. برای کدنویسی و هدایت سیستم در متلب به دانش تخصصی در این زمینه نیاز است و یادگیری آن در ابتدا ممکن است برای مبتدی ها سخت باشد؛ اما خوشبختانه ابزارهای پشتیبانی و آموزش های زیادی در زمینه یادگیری متلب وجود دارد که کار شما را راحتتر می کنند. محاسبات مربوط به دستورهای شرطی همه جا استفاده می شوند و در پیشرفت علم و فناوری به ما کمک می کنند. متلب به کاربران امکان می دهد تا سیستم هایشان را قبل از محاسبه واقعی مدل سازی کنند. امیدواریم آموزش امروز ما برایتان مفید بوده باشد و به شما در مسیر یادگیری دستور IF در متلب کمک کند.