حلقه if در متلب — به زبان ساده و با مثال
در این مطلب در مورد حلقه if در متلب صحبت میکنیم. بدین منظور ابتدا به صورت مختصر کار با متلب را توضیح میدهیم و سپس در مورد چگونگی نوشتن یک کلین کد در متلب صحبت میکنیم. در بخش بعدی این نوشتار در مورد حلقههای شرطی در متلب صحبت خواهیم کرد و حلقه if در متلب را توضیح میدهیم. بخش پایانی این نوشتار به معرفی دورههای آموزشی متلب در فرادرس خواهد پرداخت.
شروع با نرم افزار متلب چگونه است؟
وقتی متلب را باز میکنید به پنجرهای مانند تصویر بالا برخورد میکنید که در تصویر قسمتهای مختلف این صفحه نمایش داده شده است. یکی از ویژگیهای متلب این است که میتواند نحوه قرار گیری و ساختار شبکه را تغییر دهید. در صفحه Command ممکن است با دو نوع علامت در صفحه خالی Command مواجه شوید که به صورت زیر هستند:
<< | در این حالت شما ورژن کامل متلب را دارید. |
EDU> | در این حالت ورژن آموزشی متلب در اختیار شما است. |
اما نوتیشن رایج در صفحه Command همان >> است که در ادامه ما نیز از این رویه استفاده میکنیم.
استفاده از متلب به عنوان ماشین حساب
به عنوان یک مثال از محاسبات ساده در متلب تنها لازم است عبارتی که قصد دارید محاسبه کنید را در پنجره متلب تایپ کنید.
برای مثال عبارت ساده را میخواهیم محاسبه کنیم. بدین منظور کافی است عبارت را در صفحه دستورات یا cammand تایپ کنید و با استفاده از کلید Enter جواب را در خط بعد مشاهده میکنید.
12+1*3
2ans =
3 7
همان طور که مشاهده میکنید اگر برای جواب متغیری تعریف نشده باشد، متلب به صورت پیش فرض از ans به عنوان متغیری که جواب را در آن ذخیره کند، استفاده خواهد کرد. ولی اگر برای عبارت خود، یک متغیر مانند x تعریف کنید جواب نهایی در x ذخیره میشود، یعنی داریم:
1>> x=1+2*3
2x =
3 7
از x میتوان به عنوان پارامتری که مقدار آن مشخص است مجدداً استفاده کرد و بدین ترتیب برای مثال داریم:
1>> 4*x
2ans =
3 28.0000
بدین ترتیب میتوان گفت علامتهای به ترتیب چهار عمل اصلی ریاضیات را در متلب انجام میدهد. برای اتمام یک session در متلب با تایپ کردن quit نرم افزار متلب بسته میشود یا میتوانید مانند تمام پنجرهها این برنامه رو نیز با کلیک بر روی ضربدر قرمز ببندید.
Overwriting در متلب
هنگامی که یک متغیر را در متلب تعریف میکنید، آن متغیر مقداری که شما تعریف کردهاید را خواهد گرفت.
اگر مجدداً روی متغیر عملیات جبری انجام دهید در حافظه متلب آخرین مقدار متغیر باقی میماند. این موضوع را در مثال زیر میتوانید ببینید:
1>> t=5;
2>> t=t+1
3t=
4 6
اگر دقت کنید در معادله بالا مقدار 6 برای متغیر t در نظر گرفته شده است و این مقدار نهایی در نهایت برای محاسبات دیگر در نظر گرفته میشود.
پیام خطا
اگر یک عبارت را به اشتباه در متلب بنویسید، یک پیام خطا برای شما نمایش داده خواهد شد. برای مثال در کد زیر علامت * را ننوشتهایم.
1>> x = 10;
2>> ??? 5x
3 |
4Error: Unexpected MATLAB
5expresion.
تصحیح خطا در متلب
در بسیاری از موقعیتهایی که با پیغام خطا رو به رو میشوید، مخصوصاً اگر عبارتی که نوشتهاید طولانی باشد تایپ مجدد آن سخت است. به همین دلیل بهتر است در این مواقع دستورات قبلی را با استفاده از کلید رو به بالا () در صفحه کیبورد خود جستجو کنید و از این روش برای تصحیح خطای رخ داده در دستور خود استفاده کنید.
نوشتن کد تمیز یا کلین کد در متلب چگونه است؟
دلایل زیادی وجود دارد که چرا کدی که فقط کار میکند به اندازه کافی خوب نیست. برای پاسخ به این سوال فهرست زیر را ببینید:
- رفع اشکالات، افزودن ویژگیها و کار با کد در تمام جنبههای دیگر وقتی کد تمیز باشد بسیار آسانتر است.
- تصور کنید شخص دیگری به کد شما نگاه میکند و سعی میکند بفهمد که کد شما چه کاری انجام میدهد. در صورتی که کد شما اصطلاحاً کلین کد نباشد، آن فرد زمان زیادی را صرف میکند تا کد شما را درک کند.
- ممکن است اکنون برای هدف خاصی برنامه نویسی و کد نویسی کنید و به نظر برسد هیچ گاه دیگر به کدی که نوشتهاید باز نخواهید گشت. با این حال تجربه نشان داده است که عملاً هیچ کار محاسباتی وجود ندارد که فقط یک بار در زندگی برنامهنویسی خود با آن مواجه شوید. تصور کنید که یک هفته، یک ماه یا یک سال بعد به کد خود نگاه میکنید: آیا هنوز میتوانید بفهمید که کد شما چگونه کار میکند؟ کلین کد به شما کمک میکند که همواره بفهمید کد شما چگونه کار میکند.
نمونههایی زیادی ازکدهای نامرتب، بدون ساختار و به طور کلی کثیف وجود دارند. همچنین منابعی هستند که تقریباً تضمین میکنند که کدهایی با ساختار مناسب ارائه میدهند. برای مثال به ساختار متلب دقت کنید، در بسیاری از مواقع بسیاری از توابع که ممکن است استفاده کنید در خود سینتکس متلب تعریف شدهاند. برای مثال دستور edit mean را در صفحه اجرای متلب تایپ کنید. فایلی که به شما نشان داده میشود میتوان به شما نشان دهد که چگونه یک کلین کد با این تابع بنویسیم.
چند تابع در یک فایل
این یک باور رایج و نادرست است که متلب نمیتواند با چندین تابع در هر فایل کار کند. حقیقت این است که ممکن است بیش از یک تابع در یک فایل وجود داشته باشد، اما تنها اولین تابع در فایل برای توابع موجود در فایلهای دیگر یا خط فرمان قابل مشاهده است. از این نظر، آن دسته از توابع در یک فایل که موقعیت تابع اول را ندارند میتوانند به عنوان کمک کننده برای تابع اول در کد عمل کنند. هنگام نوشتن کد، به این فکر کنید که آیا یک تابع خاص واقعاً فقط یک کمک کننده تابع اصلی است یا خیر، آیا میتوان آن را از جای دیگری فراخوانی کرد؟ با انجام این کار، میتوانید از آشفتگی و به هم ریختگی دهها M فایل در پوشه برنامه خود جلوگیری کنید.
زیر تابعها
مشکلی که ممکن است در صورت داشتن تابعهای بسیار زیاد پیش آید این است که در هر فایل ممکن است متوجه نشوید کدام تابع واقعاً به کدام یک از توابع دیگر نیاز دارد. در صورتی که یک تابع، تنها تابع کمکی برای یک تابع اصلی باشد بهترین مکان برای قرار دادن آن داخل فایل تابع اصلی است.
به این ترتیب، این تابع کمکی فقط برای تابع اطراف قابل مشاهده خواهد بود و نام آن با نام هیچ تابع دیگری تداخل نخواهد داشت. با این حال بزرگترین مزیت نوشتن تابع فرعی در فایل تابع اصلی این است که تابع فرعی از نظر دستوری به وضوح با عملکرد والد یا تابع اصلی خود مرتبط است و هنگامی که برای اولین بار به کد نگاه میکنید، روابط بین توابع بلافاصله قابل مشاهده است.
نام متغیرها و توابع
یکی از عناصر کلیدی برای یک کد قابل اطمینان، استفاده از یک طرح کلی و ثابت برای نامگذاری توابع است. از آغاز پیدایش زبانهای برنامه نویسی در دهه 1950، طرحهایی برای نامگذاری توسعه یافته یا از بین رفتهاند، اما به طور کلی این طرحها در معرض تکامل هستند. با این حال، برخی از قوانین کلی وجود دارد که در طول سالها در انواع زمینههای مختلف مفید واقع شدهاند. چند مورد از مفیدترین اصول نامگذاری در اینجا بیان شده است:
- نام متغیرها نشان میدهد که متغیر چه کاری انجام میدهد. بدون شک این اولین و مهمترین قاعده در نامگذاری متغیرها است و متضمن چندین چیز است. برای مثال وقتی متغیر دارای مقدار 2٫718128 است نام آن را pi نمیگذارید. همچنین در ریاضیات و علوم کامپیوتر برخی از نامها به مفاهیم خاص در علوم مرتبط میشود که در جدول (1) تعدادی از قراردادهای پرکاربرد فهرست شدهاند.
نام متغیر | کاربرد معمول متغیر |
اندازه عددی که معمولاً برای نشان دادن سایز یک ماتریس استفاده میشود. | |
مقادیر عددی و همچنین اندیسهای یک حلقه | |
مقادیر حقیقی | |
مقدار مختلط یا محور z | |
مقدار مختلط یا ثابت | |
مقدار زمان | |
عدد اویلری یا بردار یکه | |
نام توابع اصلی | |
پارامتر گسسته سازی فضایی (در تحلیل عددی) | |
پارامترهای حقیقی و کوچک | |
زاویه یا پارامتر | |
پارامترهای گسسته زمانی | |
پارامتر | |
بردار | |
ماتریس | |
قسمت سمت راست یک سیستم توابع |
- نامگذاری کوتاه و غیر توصیفی در محاسبات ریاضی کاملاً رایج است زیرا نام متغیرها در محاسبات دستی به سختی بلندتر از یک کاراکتر هستند، این مورد در جدول بالا نیز مشخص است. برای اینکه بتوان بین کمیتهای برداری و ماتریس تمایز قائل شد، در برنامه نویسی و همچنین ریاضیات معمول است که ماتریسها را با حروف بزرگ و بردارها و اسکالرها را با حروف کوچک نشان دهیم.
- نامگذاری طولانی و توصیفی برای متغیرها بیشتر در C++ رایج است و معمولاً با حروف کوچک شروع میشود. همچنین در نامگذاری طولانی متغیرها معمولاً از خط تیره برای فاصله بین کلمات استفاده میشود اما باید دقت کرد که در متلب خط تیره بین کلمات به عنوان علامت تفاضل در نظر گرفته میشود. هر دو مورد در مثال زیر نمایش داده شدهاند:
linearity , distanceToCircle , figureLabel
linearity , distance_to_circle , figure_label
- نام متغیرهای منطقی اگر قرار باشد این متغیر فقط مقادیر 0 یا 1 را برای نشان دادن درست یا نادرست بودن عبارت نمایش دهد، باید بیانگر این موضوع باشد. یک تکنیک متداول این است که نام متغیر را با is و یک روش کمتر متداول استفاده از flag است. این موارد در ادامه نمایش داده شدهاند:
isPrime , isInside , flagCircle
تورفتگی در کدنویسی
اگر تا به حال با ساختارهای تودرتوی if و for سروکار داشته باشید، احتمالاً متوجه شدهاید که ممکن است در نگاه اول تشخیص آن ساختارهای تودرتو از سایر قسمتهای کد دشوار باشد. همچنین، اگر محتویات یک حلقه بیش از تنها چند خط باشد، یک ویژگی بصری ممکن است برای نشان دادن آنچه در داخل و خارج از حلقه است مفید باشد و اینجا است که تورفتگی وارد عمل میشود.
معمولاً هر چیزی در یک حلقه یعنی یک تابع، یک شرط، یک دستور سوئیچ و غیره را با ایجاد تورفتگی در کد ایجاد میکنیم. بسته به شرایط مختلف تورفتگی را میتوان با دو، سه یا چهار فاصله یا یک tab ایجاد کرد. به عنوان یک قاعده کلی، تورفتگی باید تمایز بصری واضحی داشته باشد در حالی که از تمام فضای شما در خط استفاده نمیکند. این موضوع را در پاراگراف بعدی مشاهده میکنید.
طول خط
عملاً هیچ محدودیتی برای میزان نوشتن روی یک خط کد متلب وجود ندارد. در واقع، میتوانید هر کد متلب را با جدا کردن دو دستور با یک علامت ؛ یا ، به یک خط تبدیل کنید و هیچ خط دیگری بین آنها تولید نکنید. با این حال، یک خط با یک میلیون کاراکتر به طور بالقوه چندان خوانا نخواهد بود. اما، به صورت کلی سوال این است که چند کاراکتر را میتوانید در یک خط قرار دهید بدون اینکه محتوای آن را مبهم کنید؟
این موضوعی است که باید در مورد آن بحث کرد. به صورت معمول تعداد کاراکتر روی یک خط معمولاً بین 70 تا 80 کاراکتر است. ویرایشگر متن متلب، ۷۵ کاراکتر در هر خط را پیشنهاد میدهد. بدین ترتیب، فرد مطمئن است که برای نمایش کد بدون شکستگی خط به صورت مصنوعی یا اسکرول کردن افقی در ویرایشگر، نیازی به داشتن یک نمایشگر عریض نیست. البته ممکن است گاهی اوقات طول خطوط شما بیشتر از ۷۵ کاراکتر باشد، در این مواقع از علامت ... استفاده میشود تا نشان داده شود که ادامه خط در سطر بعدی نوشته شده است.
فاصله و تراز
در برخی شرایط شکستن یک خط منطقی است، اگرچه هنوز به حد مجاز نرسیده باشد. این موضوع ممکن است زمانی اتفاق بیفتد که شما با عبارتی سروکار دارید که به دلیل طولانی بودنش باید بیشتر به سمت راست شکسته شود. بدین ترتیب میخواهیم نقطه شکست خط را طوری انتخاب کنیم که با یک گسست معنایی یا دستوری مطابقت داشته باشد. برای مثال، کد زیر را ببینید.
فاصله در عبارات
این ویژگی استفاده از فاصله در عبارات است. قانون این موضوع قرار دادن فاصله در جایی است که در سینتکس متلب تعریف شده است. این موضوع به خوبی در تصویر زیر نشان داده شده است:
اعداد جادویی
هنگام کدنویسی، گاهی اوقات یک مقدار را ثابت در نظر میگیرید زیرا قصد ندارید آن را تغییر دهید. به عنوان مثال، برنامهای را در نظر بگیرید که تعیین میکند آیا یک نقطه داده شده خارج از یک دایره با شعاع 1 با مرکز (1،1) و به طور همزمان در داخل مربعی به طول یال 2 قرار دارد یا نه، که دایره در سمت راست مربع قرار دارد.
پس از نوشتن کد، برنامه شامل چند 1 است که مشخص نیست که آیا آنها متمایز هستند یا به یک مقدار یکسان اشاره دارند. این اعداد رمزگذاری شده اغلب اعداد جادویی نامیده میشوند، زیرا آنها کاری را که قرار است انجام دهند انجام میدهند، اما نمی توان به راحتی دلیل آن را تشخیص داد. در همین برنامه اگر بخواهید شعاع دایره را تغییر دهید، تشخیص و تغییر ۱ هایی که به شعاع اشاره دارند دشوار خواهد بود. راه حل این موضوع در کادر سبز رنگ نمایش داده شده است.
توضیحات
با ارزش ترین کاراکتر برای کلین کد متلب استفاده از کاراکتر %، برای نشان دادن توضیحات مربوط به کد است. همه نشانههای بعد از کاراکتر درصد در همان خط تاثیری در کد ندارند و به عنوان توضیحات کد در نظر گرفته میشوند.
عناصر ساختاری
همیشه مفید است که ابتدا و انتهای تابع نه تنها با کلمات کلیدی مربوطه نشان داده شود، بلکه با چیزی قابل مشاهدهتر مشخص شوند. برای جداسازی ظاهری بخشهای متمایز کد، علائمی را با کاراکترهای #، = یا - در نظر میگیریم. این علائم به عنوان مثال زمانی که چندین تابع در یک فایل سورس وجود دارد، یا زمانی که یک حلقه for وجود دارد که روی تعداد زیادی از خطوط اثر میگذارد که دیگر به راحتی نمیتوانید دستور end را پیدا کنید، بسیار مفید است.
استفاده از پرانتز و براکت
لیست اولویت عملگرها در متلب به صورت مشخص و واضح وجود دارد که میتوانید اطمینان حاصل کنید که برای هر عبارت در متلب، که شامل هر عملگر یونری یا باینری است، یک روش منحصر به فرد برای ارزیابی وجود دارد. به صورت طبیعی، متلب ضرب (*) را قبل از جمع (+) بررسی میکند، اما ممکن است زمانی که صحبت از عملگرهای منطقی یا ترکیبی از عملگرهای عددی و منطقی به میان میآید، این موارد کمتر واضح باشند.
با این حال هر زمانی که الویتها را از خاطر برده بودید یا از آن اطمینان نداشتید میتوانید یک جفت براکت را در محل مورد نظر قرار دهید. این براکتها اگر چه ممکن است غیر ضروری باشند، اما از ایجاد نتیجه نادرست جلوگیری میکند. همچنین الویت عملگرها به صورت جدول زیر داده میشوند:
- پرانتز ()
- ترانهاده (.')، توان (.^)، ترانهاده مزدوج مختلط(')، توان ماتریس (^)
- مقدار مثبت یک کمیت (+)، مقدار منفی یک کمیت (-)، نفی منطقی (~)
- ضرب (.*)، تقسیم راست (./)، تقسیم چپ (.\)، ضرب ماتریس (*)،
تقسیم سمت راست ماتریس (/)، تقسیم ماتریس چپ (\) - جمع (+)، تفریق (-)
- عملگر کولون (:) که برای ایجاد بردار، ایجاد آرایه پایین و تکرار در متلب استفاده میشود.
- کمتر از (<)، کمتر یا مساوی (<=)، بزرگتر از (>)، بزرگتر یا مساوی
(>=)، برابر با (==)، غیرمساوی با (~=) - عملگر و (&)
- عملگر یا (|)
- عملگر و (&&)
- عملگر یا (||)
خطاها و هشدارها
مهم نیست که چقدر دقیق کد خود را طراحی میکنید، زیرا همواره کاربرانی وجود خواهند داشت که میتوانند با دادن دادههای ورودی بد جوابهای اشتباهی از برنامه بگیرند. در حقیقت، این در محاسبات عددی غیرمعمول نیست که کارها اساساً اشتباه پیش میروند.
برای مثال شما برنامهای مینویسید که یک فرآیند تکرار شونده را روی سیستم معادلات خطی که به صورت تعریف شده، انجام میدهد. این محاسبات برای یک مقدار ورودی مربوط به انجام میشود و شما میخواهید مقدار را به دست آورید. با این حال همگرایی برای معادله فقط برای مقادیر مشخصی از صورت میگیرد و اگر مقدار در آن بازه نباشد رفتار تابع نیز غیرمعمولی است.
در این مواقع باید کاربر را با استفاده از عملگرهای ftprintf () یا disp () متوجه اشتباه صورت گرفته در برنامه کنید. با این حال روش بهتر این است که از warning () یا error () استفاده کنید. تفاوت دو دستور آخری با ابتدایی در این است که به محض اجرای دستورهای error یا warning اجرای برنامه متوقف میشود.
سوییچ کردن حالتها
دستورهای سوییچ زمانی استفاده میشوند که غیر از آن مجبور باشید یک دستور شرطی را با چندین دستور if دیگر بنویسید. آنها همچنین زمانی که شرط ها برای مقایسه عبارتهای string باشند، بسیار محبوب هستند.
دستورهای شرطی و حلقه if در متلب
عبارات شرطی شما را قادر میسازد در زمان اجرا انتخاب کنید کدام بلوک کد اجرا شود.
ساده ترین دستور شرطی یک دستور if است. به عنوان مثال داریم:
1% Generate a random number
2a = randi(100, 1);
3
4% If it is even, divide by 2
5if rem(a, 2) == 0
6 disp('a is even')
7 b = a/2;
8end
عبارتهای if میتوانند شامل گزینههای جایگزین نیز باشند که این مهم با استفاده از کلمات کلیدی elseif یا else ایجاد میشود. برای مثال داریم:
1a = randi(100, 1);
2
3if a < 30
4 disp('small')
5elseif a < 80
6 disp('medium')
7else
8 disp('large')
9end
از طرف دیگر، هنگامی که میخواهید برابری یا تساوی را در برابر مجموعهای از مقادیر مشخص آزمایش کنید، از دستور switch استفاده کنید. این موضوع را در مثال زیر نشان دادهایم:
1[dayNum, dayString] = weekday(date, 'long', 'en_US');
2
3switch dayString
4 case 'Monday'
5 disp('Start of the work week')
6 case 'Tuesday'
7 disp('Day 2')
8 case 'Wednesday'
9 disp('Day 3')
10 case 'Thursday'
11 disp('Day 4')
12 case 'Friday'
13 disp('Last day of the work week')
14 otherwise
15 disp('Weekend!')
16end
برای هر دو دستور switch و if در متلب، کد مربوطه به محض اینکه شرایط لازم در دستور ایجاد میشود از حلقه خارج میشود. هر عبارت شرطی به کلمه کلیدی end نیز نیاز دارد. به طور کلی هنگامی که مقادیر زیادی از مقادیر گسسته و شناخته شده را دارید، خواندن دستورات سوئیچ راحتتر از if است. با این حال، شما نمیتوانید نابرابری را توسط دستور سوئیچ نشان دهید، یعنی نمیتوانید برنامه زیر را توسط دستور switch اجرا کنید:
1yourNumber = input('Enter a number: ');
2
3if yourNumber < 0
4 disp('Negative')
5elseif yourNumber > 0
6 disp('Positive')
7else
8 disp('Zero')
9end
حلقه if در متلب
کد مربوط به دستور حلقه if در متلب، زمانی که شرط درست باشد پایان می یابد. شکل کلی حلقه if در متلب به صورت زیر است:
1if expression
2 statements
3elseif expression
4 statements
5else
6 statements
7end
سه عضو اصلی حلقه if در متلب عبارت از if، عبارت یا statment و end است. همچنین نوشتن دستورهای elseif و else اختیاری هستند. در ادامه چندین مثال مربوط به حلقه if در متلب را بررسی میکنیم. این مثالها قابل اجرا در صفحه command یا دستورات است.
در مثال اول یک ماتریس یکه با تعداد ۴ سطر و ۶ ستون ایجاد میکنیم و سپس با استفاده از حلقه if در متلب قطر اصلی را ۲ و به قطر همسایه قطر اصلی مقدار را میدهیم. بدین ترتیب داریم:
1>> nrows = 4;
2ncols = 6;
3A = ones(nrows,ncols);
4>> for c = 1:ncols
5 for r = 1:nrows
6
7 if r == c
8 A(r,c) = 2;
9 elseif abs(r-c) == 1
10 A(r,c) = -1;
11 else
12 A(r,c) = 0;
13 end
14
15 end
16end
17A
18
19A =
20
21 2 -1 0 0 0 0
22 -1 2 -1 0 0 0
23 0 -1 2 -1 0 0
24 0 0 -1 2 -1 0
برای مقایسه مقادیر یک بردار با یک حد مشخص نیز به صورت زیر میتوان با استفاده از حلقه if در متلب این مقایسه را انجام داد:
1>> limit = 0.75;
2A = rand(10,1)
3
4A =
5
6 0.8147
7 0.9058
8 0.1270
9 0.9134
10 0.6324
11 0.0975
12 0.2785
13 0.5469
14 0.9575
15 0.9649
16
17>> if any(A > limit)
18 disp('There is at least one value above the limit.')
19else
20 disp('All values are below the limit.')
21end
22There is at least one value above the limit.
سایز دو ماتریس دلخواه که تعریف کردیم را نیز میتوانیم با استفاده از عبارت isequal و استفاده از حلقه if در متلب به صورت زیر مقایسه کنیم و داریم:
1>> A = ones(2,3);
2B = rand(3,4,5);
3>> if isequal(size(A),size(B))
4 C = [A; B];
5else
6 disp('A and B are not the same size.')
7 C = [];
8end
9A and B are not the same size
استفاده از strcmp برای مقایسه کاراکترهای بردار استفاده میشود. معمولاً استفاده از == برای آزمایش برابر بودن زمانی که بردارهای کاراکتر اندازههای متفاوتی دارند، منجر به خطا میشود.
1>> reply = input('Would you like to see an echo? (y/n): ','s');
2if strcmp(reply,'y')
3 disp(reply)
4end
برای مشخص کردن این موضوع که آیا یک مقدار در یک بازه مشخص قرار میگیرد یا خیر نیز میتوان از حلقه if در متلب استفاده کرد و بدین ترتیب داریم:
1>> x = 10;
2minVal = 2;
3maxVal = 6;
4
5>> if (x >= minVal) && (x <= maxVal)
6 disp('Value within specified range.')
7elseif (x > maxVal)
8 disp('Value exceeds maximum value.')
9else
10 disp('Value is below minimum value.')
11end
12
13Value exceeds maximum value.
به عنوان آخرین مثال از حلقه if در متلب میخواهیم این حلقه را در یک تابع در متلب استفاده کنیم. برای آشنایی با تابع نویسی در متلب میتوانید مقاله چگونه در متلب تابع بنویسیم؟ — به زبان ساده را بخوانید. در این مثال کاربر مقدار x را به متلب میدهد و با اجرای تابع compare مشخص میشود که مقداری که دادهایم مثبت، منفی یا صفر است. تابع compare به صورت زیر تعریف میشود:
1function com = compare(x)
2
3if x > 0
4 disp('The number is positive')
5elseif x == 0
6 disp('The number is zero')
7else
8 disp ('Kidding! obviously it is negative:)')
9end
10com=x;
11end
برای اجرای برنامه به صورت زیر در صفحه command عمل میکنیم و داریم:
1>> z=6;
2>> com=compare(z)
مطالب آموزش متلب در مجله فرادرس
در مجله فرادرس نوشتارهای فراوانی برای آموزش زبان برنامه نویسی متلب وجود دارد که با مطالعه آنها میتوانید به راحتی به این نرم افزار مسلط شوید و با آن کار کنید. برخی از این مطالب را در ادامه معرفی میکنیم:
- نرم افزار متلب چیست و چه کاربردی دارد؟ + معرفی منابع یادگیری Matlab
- برنامه نویسی در متلب (MATLAB) — راهنمای گام به گام (+ دانلود فیلم آموزش رایگان)
- کدهای متلب محاسبات عددی | دانلود رایگان مجموعه کامل
- حل معادله درجه ۲ در متلب | گام به گام (+ دانلود نمونه کد)
- رسم نمودار ماتریس در متلب | گام به گام و کاربردی
- ماتریس در متلب — راهنمای جامع (+ دانلود فیلم آموزش رایگان)
- مشتق در متلب — راهنمای کاربردی
- فاکتوریل در متلب — راهنمای جامع
- رسم تابع در متلب — آموزش گام به گام + نمونه کد
- دستور Sparse در متلب | به زبان ساده
- پخش بار نیوتن رافسون در متلب — از صفر تا صد
- رسم نمودار دو بعدی در متلب (+ دانلود فیلم آموزش رایگان)
- حل دستگاه معادلات دیفرانسیل غیر خطی در متلب | گام به گام
معرفی فیلمهای آموزش متلب فرادرس
منابع آموزشی نرم افزار متلب بسیار فراوان هستند اما بسیاری از منابع به زبان انگلیسی بوده که این موضوع آموزش را برای کسانی که ممکن است به زبان انگلیسی آشنایی کامل نداشته باشند دشوار میکند. همچنین با توجه به اینکه دسترسی به وبسایت متلب به صورت کامل برای کاربران ایرانی فراهم نیست، ممکن است فرآیند آموزش و شبیه سازی با این نرم افزار دشوارتر شود. به این دلیل فرادرس مجموعه دورههای آموزش متلب را برای کاربران با کاربردهای مختلف ضبط و آماده کرده است. این آموزشها را به صورت فهرست وار در ادامه معرفی میکنیم و برخی از آنها را به صورت جزئیتر برای شما توضیح میدهیم. مجموعه آموزش متلب فرادرس شامل موارد زیر هستند:
- آموزش برنامه نویسی متلب (MATLAB)
- آموزش برنامه نویسی متلب برای علوم و مهندسی
- مجموعه آموزش های برنامه نویسی متلب پیشرفته
- آموزش طراحی رابط گرافیکی کاربر (GUI) با متلب (MATLAB) – مقدماتی
- آموزش طراحی رابط گرافیکی کاربر (GUI) با متلب (MATLAB) – تکمیلی
- آموزش ساخت ربات تلگرام با متلب (MATLAB)
- آموزش کدهای بلوکی در متلب (MATLAB)
- مجموعه آموزش های واقعیت مجازی و ساخت انیمیشن برای کاربران متلب و سیمولینک
- آموزش رایگان نکات و ترفندهای متلب
- آموزش آشنایی با تولباکس k-Wave در متلب
معرفی فیلم آموزش برنامه نویسی متلب (MATLAB)
مجموعه فرادرس در تولید و تهیه محتوای آموزشی خود اقدام به تهیه فیلم آموزش برنامه نویسی متلب (MATLAB) کرده است. این مجموعه آموزشی از شش درس تشکیل شده و برای دانشجویان رشتههای مهندسی و علوم پایه مفید است. پیش نیاز این مجموعه آموزش اصول و مبانی برنامه نویسی – (رایگان) است.
درس اول این مجموعه به مقدمات و آشنایی با نرم افزار و زبان برنامه نویسی متلب میپردازد و درس دوم انواع داده در متلب را آموزش میدهد. درس سوم به ساختارهای کنترل برنامه در متلب و درس چهارم به تعریف و استفاده از توابع در متلب اختصاص دارد. در درس پنجم گرافیک و ترسیم نمودار در متلب را خواهید آموخت و در نهایت در درس ششم و آخر این مجموعه با مدیریت فایل ها و اطلاعات در متلب آشنا خواهید شد.
- برای دیدن فیلم آموزش برنامه نویسی متلب (MATLAB) + اینجا کلیک کنید.
معرفی فیلم آموزش برنامه نویسی متلب برای علوم و مهندسی
مجموعه فرادرس در تولید و تهیه محتوای آموزشی خود اقدام به تهیه فیلم آموزش برنامه نویسی متلب برای علوم و مهندسی کرده است. این مجموعه آموزشی از هشت درس تشکیل شده و برای دانشجویان رشته علوم پایه و فنی مهندسی مفید است. پیشنیاز این درس آموزش برنامه نویسی متلب (MATLAB) است.
درس اول این مجموعه به حل معادلات جبری و ریشهیابی در متلب اختصاص دارد. درس دوم شامل اعداد تصادفی، محاسبات و تحلیل آماری در متلب است. درس سوم به انتگرال گیری و مشتق گیری عددی در متلب میپردازد و درس چهارم به محاسبات نمادین در متلب اختصاص دارد. در درس پنجم در مورد جبرخطی در متلب خواهید آموخت و در درس ششم درون یابی، تقریب تابع و برازش منحنی و سطح در متلب بررسی میشود. در نهایت در درس هفتم بهینه سازی کلاسیک در متلب آموزش داده میشود و درس هشتم به حل انواع مختلف معادلات دیفرانسیل (Differential Equations) در متلب اختصاص دارد.
- برای دیدن فیلم آموزش برنامه نویسی متلب برای علوم و مهندسی + اینجا کلیک کنید.
معرفی فیلم مجموعه آموزشهای برنامه نویسی متلب پیشرفته
مجموعه فرادرس در تولید و تهیه محتوای آموزشی خود اقدام به تهیه فیلم مجموعه آموزشهای برنامه نویسی متلب پیشرفته کرده است. این مجموعه آموزشی از هفت درس تشکیل شده و برای دانشجویان رشتههای علوم پایه و مهندسی مفید است. پیشنیاز این درس آموزش برنامه نویسی متلب (MATLAB) است.
درس اول این مجموعه به معرفی و آشنایی با ساختارها و آرایههای سلولی در متلب میپردازد و درس دوم عبارات قانونمند (Regular Expressions) و کاربردهای آنها در متلب را معرفی میکند. درس سوم به رویکردهای پیشرفته تعریف و پیاده سازی توابع در متلب اختصاص دارد. در درس چهارم تعریف آرایههای توسعه یافته با Container Map را در متلب خواهید آموخت و در درس پنجم این مجموعه مدیریت خطا و حالات استثنائی برنامهها در متلب آموزش داده میشود. درس ششم به تایمرها (Timer) و کاربرد آنها در متلب اختصاص دارد و در نهایت در درس هفتم این مجموعه برنامه نویسی شی گرا (Object-Oriented Programming) در متلب آموزش داده میشود.
- برای دیدن فیلم مجموعه آموزشهای برنامه نویسی متلب پیشرفته + اینجا کلیک کنید.
معرفی فیلم مجموعه آموزش های واقعیت مجازی و ساخت انیمیشن برای کاربران متلب و سیمولینک
مجموعه فرادرس در تولید و تهیه محتوای آموزشی خود اقدام به تهیه فیلم مجموعه آموزشهای واقعیت مجازی و ساخت انیمیشن برای کاربران متلب و سیمولینک کرده است. این مجموعه آموزشی از هفت درس تشکیل شده و پیشنیاز آن آشنایی با برنامه نویسی متلب، فیزیک و ریاضیات دانشگاهی است.
درس اول این مجموعه مقدمهای بر واقعیت مجازی در محیط MATLAB و Simulink است و درس دوم آشنایی با نرم افزار V – Realm Builder را آموزش میدهد. درس سوم شامل شبیه سازی انتقال یک مکعب است و درس چهارم به نحوه شبیه سازی نوسان سیستم دو درجه آزادی جرم – فنر – میراگر اختصاص دارد. در درس پنجم و ششم انیمیشن انتقال یک مکعب با استفاده از مدل Simulink و انیمیشن نوسان سیستم جرم – فنر – میراگر با استفاده از مدل سیمولینک آموزش داده میشود. در نهایت، در درس هفتم و آخر این مجموعه آشنایی با مدلهای از پیش آماده شده جعبه ابزار واقعیت مجازی آموزش داده خواهد شد.
- برای دیدن فیلم مجموعه آموزشهای واقعیت مجازی و ساخت انیمیشن برای کاربران متلب و سیمولینک + اینجا کلیک کنید.
معرفی فیلم آموزش نکات و ترفندهای متلب
مجموعه فرادرس در تولید و تهیه محتوای آموزشی خود اقدام به تهیه فیلم آموزش رایگان نکات و ترفندهای متلب کرده است. این مجموعه آموزشی از بیست قسمت تشکیل شده و برای دانشجویان رشتههای مهندسی و علوم پایه مفید است. اگر قصد دارید دستورات مهم متلب را در زمان کوتاه فرا بگیرید، این مجموعه آموزشی بسیار مفید است.
درس اول این مجموعه به آشنایی با محیط متلب، توابع clc و clear و متغیر ans و درس دوم توابع سازنده ماتریسهای مهم مانند zeros ،ones و eye آموزش داده میشود. درس سوم ثابتها و علامتهای مهم و پرکاربرد در متلب را آموزش میدهد و درس چهارم شامل تشخیص محدود، نامحدود و نامعین بودن توابع (توابع ifinite ،isinf و isnan) است. درس پنجم و ششم به ترتیب عملگرهای مهم برای تعریف ماتریسها و کلمات کلیدی متلب و تابع iskeyword را پوشش میدهد. درس هفتم و هشتم شامل صفحهبندی خروجیهای طولانی با تابع more و قالببندی خروجی با تابع format است. درس نهم و دهم شامل آموزش نمادها و توابع true و false برای مقادیر منطقی و استخراج قطر ماتریس و ساخت ماتریس قطری با تابع diag هستند.
در درس یازدهم ساخت ماتریسهای قطری بلوکی با تابع blkdiag و در درس دوازدهم کاربردهای عملگر کولون یا دو نقطه و قواعد اندیسگذاری آموزش داده میشود. کاربرد کلمه end به عنوان اندیس و محاسبه ترانهاده و ترانهاده مزدوج ماتریسها در درس سیزدهم و چهاردهم بررسی میشود. در درس پانزدهم و شانزدهم آموزش دستورهای مربوط به آینهای کردن ماتریسها با تابع flip و حالات خاص آن با دو تابع flipud و fliplr و ساخت دنباله حسابی با تابع linspace پوشش داده میشود. درس هفدهم به ساخت دنباله هندسی با تابع logspace اختصاص دارد و درس هجدهم کامنتگذاری و بلوکهای کامنت در متلب را آموزش میدهد. در نهایت نیز در درس نوزدهم و بیستم فراخوانی فرمانهای سیستمی در متلب با عملگر ! و الحاق ماتریسها با تابع cat و حالات خاص آن horzcat و vertcat آموزش داده میشود.
- برای دیدن فیلم آموزش رایگان نکات و ترفندهای متلب + اینجا کلیک کنید.
جمعبندی
در این نوشتار در مورد حلقه if در متلب صحبت کردیم. بدین منظور ابتدا توضیحات مختصری در مورد شروع کار با متلب بیان کردیم، سپس نکات مهم در نوشتن یک کد تمیز در متلب را ارائه دادیم و در نهایت عبارات شرطی در متلب را معرفی کردیم و مثالهای مختلفی از حلقه if در متلب را در صفحه دستورات و به صورت تابع اجرا کردیم.