برنامه نویسی و طراحی سایت

حلقه if در متلب — به زبان ساده و با مثال

حلقه if در متلب — به زبان ساده و با مثال

در این مطلب در مورد حلقه if در متلب صحبت می‌کنیم. بدین منظور ابتدا به صورت مختصر کار با متلب را توضیح می‌دهیم و سپس در مورد چگونگی نوشتن یک کلین کد در متلب صحبت می‌کنیم. در بخش بعدی این نوشتار در مورد حلقه‌های شرطی در متلب صحبت خواهیم کرد و حلقه if در متلب را توضیح می‌دهیم. بخش پایانی این نوشتار به معرفی دوره‌های آموزشی متلب در تم آف خواهد پرداخت.

فهرست مطالب این نوشته
شروع با نرم افزار متلب چگونه است؟

استفاده از متلب به عنوان ماشین حساب

Overwriting در متلب

پیام خطا

تصحیح خطا در متلب

نوشتن کد تمیز یا کلین کد در متلب چگونه است؟

چند تابع در یک فایل

زیر تابع‌ها

نام متغیرها و توابع

تورفتگی در کدنویسی

طول خط

فاصله و تراز

فاصله در عبارات

اعداد جادویی

توضیحات

عناصر ساختاری

استفاده از پرانتز و براکت

خطاها و هشدارها

سوییچ کردن حالت‌ها

دستورهای شرطی و حلقه if در متلب

حلقه if در متلب

مطالب آموزش متلب در مجله تم آف

معرفی فیلم‌های آموزش متلب تم آف

معرفی فیلم آموزش برنامه نویسی متلب (MATLAB)

معرفی فیلم آموزش برنامه نویسی متلب برای علوم و مهندسی

معرفی فیلم مجموعه آموزش‌های برنامه نویسی متلب پیشرفته

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

معرفی فیلم آموزش نکات و ترفندهای متلب

جمع‌بندی

faradars mobile

شروع با نرم افزار متلب چگونه است؟

صفحه ابتدایی نرم افزار متلب
تصویر 1: صفحه ابتدایی نرم افزار متلب

وقتی متلب را باز می‌کنید به پنجره‌ای مانند تصویر بالا برخورد می‌کنید که در تصویر قسمت‌های مختلف این صفحه نمایش داده شده است. یکی از ویژگی‌های متلب این است که می‌تواند نحوه قرار گیری و ساختار شبکه را تغییر دهید. در صفحه Command ممکن است با دو نوع علامت در صفحه خالی Command مواجه شوید که به صورت زیر هستند:

در این حالت شما ورژن کامل متلب را دارید.
EDU> در این حالت ورژن آموزشی متلب در اختیار شما است.

اما نوتیشن رایج در صفحه Command همان >> است که در ادامه ما نیز از این رویه استفاده می‌کنیم.

استفاده از متلب به عنوان ماشین حساب

به عنوان یک مثال از محاسبات ساده در متلب تنها لازم است عبارتی که قصد دارید محاسبه کنید را در پنجره متلب تایپ کنید.

آموزش برنامه نویسی متلب برای علوم و مهندسی
فیلم آموزش برنامه نویسی متلب برای علوم و مهندسی در تم آف

کلیک کنید

برای مثال عبارت ساده $$1+2 times 3$$ را می‌خواهیم محاسبه کنیم. بدین منظور کافی است عبارت را در صفحه دستورات یا cammand تایپ کنید و با استفاده از کلید Enter جواب را در خط بعد مشاهده می‌کنید.

2+1*3
ans = 
      7

همان طور که مشاهده می‌کنید اگر برای جواب متغیری تعریف نشده باشد، متلب به صورت پیش فرض از ans به عنوان متغیری که جواب را در آن ذخیره کند، استفاده خواهد کرد. ولی اگر برای عبارت خود، یک متغیر مانند x تعریف کنید جواب نهایی در x ذخیره می‌شود، یعنی داریم:

>> x=1+2*3
x = 
   7

از x می‌توان به عنوان پارامتری که مقدار آن مشخص است مجدداً استفاده کرد و بدین ترتیب برای مثال داریم:

>> 4*x
ans =
      28.0000

بدین ترتیب می‌توان گفت علامت‌های $$(+,-,*,/)$$ به ترتیب چهار عمل اصلی ریاضیات را در متلب انجام می‌دهد. برای اتمام یک session در متلب با تایپ کردن quit نرم افزار متلب بسته می‌شود یا می‌توانید مانند تمام پنجره‌ها این برنامه رو نیز با کلیک بر روی ضربدر قرمز ببندید.

Overwriting در متلب

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

آموزش برنامه نویسی متلب MATLAB
فیلم آموزش برنامه نویسی متلب MATLAB در تم آف

کلیک کنید

اگر مجدداً روی متغیر عملیات جبری انجام دهید در حافظه متلب آخرین مقدار متغیر باقی می‌ماند. این موضوع را در مثال زیر می‌توانید ببینید:

>> t=5;
>> t=t+1
t=
 6

اگر دقت کنید در معادله بالا مقدار 6 برای متغیر t در نظر گرفته شده است و این مقدار نهایی در نهایت برای محاسبات دیگر در نظر گرفته می‌شود.

پیام خطا

اگر یک عبارت را به اشتباه در متلب بنویسید، یک پیام خطا برای شما نمایش داده خواهد شد. برای مثال در کد زیر علامت * را ننوشته‌ایم.

>> x = 10;
>> ??? 5x
       |
Error: Unexpected MATLAB 
expresion.

تصحیح خطا در متلب

در بسیاری از موقعیت‌هایی که با پیغام خطا رو به رو می‌شوید، مخصوصاً اگر عبارتی که نوشته‌اید طولانی باشد تایپ مجدد آن سخت است. به همین دلیل بهتر است در این مواقع دستورات قبلی را با استفاده از کلید رو به بالا ($$uparrow$$) در صفحه کیبورد خود جستجو کنید و از این روش برای تصحیح خطای رخ داده در دستور خود استفاده کنید.

نوشتن کد تمیز یا کلین کد در متلب چگونه است؟

دلایل زیادی وجود دارد که چرا کدی که فقط کار می‌کند به اندازه کافی خوب نیست. برای پاسخ به این سوال فهرست زیر را ببینید:

  • رفع اشکالات، افزودن ویژگی‌ها و کار با کد در تمام جنبه‌های دیگر وقتی کد تمیز باشد بسیار آسان‌تر است.
  • تصور کنید شخص دیگری به کد شما نگاه می‌کند و سعی می‌کند بفهمد که کد شما چه کاری انجام می‌دهد. در صورتی که کد شما اصطلاحاً کلین کد نباشد، آن فرد زمان زیادی را صرف می‌کند تا کد شما را درک کند.
  • ممکن است اکنون برای هدف خاصی برنامه نویسی و کد نویسی کنید و به نظر برسد هیچ گاه دیگر به کدی که نوشته‌اید باز نخواهید گشت. با این حال تجربه نشان داده است که عملاً هیچ کار محاسباتی وجود ندارد که فقط یک بار در زندگی برنامه‌نویسی خود با آن مواجه شوید. تصور کنید که یک هفته، یک ماه یا یک سال بعد به کد خود نگاه می‌کنید: آیا هنوز می‌توانید بفهمید که کد شما چگونه کار می‌کند؟ کلین کد به شما کمک می‌کند که همواره بفهمید کد شما چگونه کار می‌کند.
آموزش کامل برنامه نویسی کاربردی متلب – از مقدماتی تا پیشرفته
فیلم آموزش کامل برنامه نویسی کاربردی متلب – از مقدماتی تا پیشرفته در تم آف

کلیک کنید

نمونه‌هایی زیادی ازکدهای نامرتب، بدون ساختار و به طور کلی کثیف وجود دارند. همچنین منابعی هستند که تقریباً تضمین می‌کنند که کدهایی با ساختار مناسب ارائه می‌دهند. برای مثال به ساختار متلب دقت کنید، در بسیاری از مواقع بسیاری از توابع که ممکن است استفاده کنید در خود سینتکس متلب تعریف شده‌اند. برای مثال دستور edit mean را در صفحه اجرای متلب تایپ کنید. فایلی که به شما نشان داده می‌شود می‌توان به شما نشان دهد که چگونه یک کلین کد با این تابع بنویسیم.

کد کثیف در متلب
تصویر 2:  کد بالا از نظر ساختار متلب کاملاً صحیح است اما تمام قوانین نوشتن کد نادیده گرفته شده است، آیا می‌توانید این تابع چه کاری انجام می‌دهد؟

چند تابع در یک فایل

این یک باور رایج و نادرست است که متلب نمی‌تواند با چندین تابع در هر فایل کار کند. حقیقت این است که ممکن است بیش از یک تابع در یک فایل وجود داشته باشد، اما تنها اولین تابع در فایل برای توابع موجود در فایل‌های دیگر یا خط فرمان قابل مشاهده است. از این نظر، آن دسته از توابع در یک فایل که موقعیت تابع اول را ندارند می‌توانند به عنوان کمک کننده برای تابع اول در کد عمل کنند. هنگام نوشتن کد، به این فکر کنید که آیا یک تابع خاص واقعاً فقط یک کمک کننده تابع اصلی است یا خیر، آیا می‌توان آن را از جای دیگری فراخوانی کرد؟ با انجام این کار، می‌توانید از آشفتگی و به هم ریختگی ده‌ها M فایل در پوشه برنامه خود جلوگیری کنید.

تابع در کدنویسی با متلب
تصویر ۳: این کد شامل سه تابع است. این روش نوشتن زمانی مفید است که helperFun1 و helperFun2 فقط برای topFun مورد نیاز هستند.

زیر تابع‌ها

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

توابع کمکی در متلب
تصویر ۴: در تصویر با کادر قرمز رنگ، به صورت روتین fun1، fun2، helpFun1 و helpFun2 به ترتیب پشت سر هم قرار گرفته‌اند و هیچ سلسله مراتبی قابل مشاهده نیست. اما در تصویر با کادر سبز رنگ به وضوح مشخص است که helpFun به fun1 کمک می‌کند و fun2 ارتباطی با fun1 ندارد.

به این ترتیب، این تابع کمکی فقط برای تابع اطراف قابل مشاهده خواهد بود و نام آن با نام هیچ تابع دیگری تداخل نخواهد داشت. با این حال بزرگترین مزیت نوشتن تابع فرعی در فایل تابع اصلی این است که تابع فرعی از نظر دستوری به وضوح با عملکرد والد یا تابع اصلی خود مرتبط است و هنگامی که برای اولین بار به کد نگاه می‌کنید، روابط بین توابع بلافاصله قابل مشاهده است.

مجموعه آموزش نرم افزار متلب (MATLAB)
فیلم مجموعه آموزش نرم افزار متلب (MATLAB) در تم آف

کلیک کنید

نام متغیرها و توابع

یکی از عناصر کلیدی برای یک کد قابل اطمینان، استفاده از یک طرح کلی و ثابت برای نامگذاری توابع است. از آغاز پیدایش زبان‌های برنامه نویسی در دهه 1950، طرح‌هایی برای نامگذاری توسعه یافته یا از بین رفته‌اند، اما به طور کلی این طرح‌ها در معرض تکامل هستند. با این حال، برخی از قوانین کلی وجود دارد که در طول سال‌ها در انواع زمینه‌های مختلف مفید واقع شده‌اند. چند مورد از مفیدترین اصول نامگذاری در اینجا بیان شده است:

  • نام متغیرها نشان می‌دهد که متغیر چه کاری انجام می‌دهد. بدون شک این اولین و مهمترین قاعده در نامگذاری متغیرها است و متضمن چندین چیز است. برای مثال وقتی متغیر دارای مقدار 2٫718128 است نام آن را pi نمی‌گذارید. همچنین در ریاضیات و علوم کامپیوتر برخی از نام‌ها به مفاهیم خاص در علوم مرتبط می‌شود که در جدول (1) تعدادی از قراردادهای پرکاربرد فهرست شده‌اند.
نام متغیر کاربرد معمول متغیر
$$m,n$$ اندازه عددی که معمولاً برای نشان دادن سایز یک ماتریس استفاده می‌شود.
$$i, j, k,l$$ مقادیر عددی و همچنین اندیس‌های یک حلقه
$$x, y$$ مقادیر حقیقی
$$z$$ مقدار مختلط یا محور z
$$c$$ مقدار مختلط یا ثابت
$$t$$ مقدار زمان
$$e$$ عدد اویلری یا بردار یکه
$$f, g, (, h)$$ نام توابع اصلی
$$h$$ پارامتر گسسته سازی فضایی (در تحلیل عددی)
$$epsilon, delta$$ پارامترهای حقیقی و کوچک
$$alpha, beta$$ زاویه یا پارامتر
$$theta, tau$$ پارامترهای گسسته زمانی
$$kappa, sigma, omega$$ پارامتر
$$u, v, w$$ بردار
$$A, M$$ ماتریس
$$b$$ قسمت سمت راست یک سیستم توابع
  • نامگذاری کوتاه و غیر توصیفی در محاسبات ریاضی کاملاً رایج است زیرا نام متغیرها در محاسبات دستی به سختی بلندتر از یک کاراکتر هستند، این مورد در جدول بالا نیز مشخص است. برای اینکه بتوان بین کمیت‌های برداری و ماتریس تمایز قائل شد، در برنامه نویسی و همچنین ریاضیات معمول است که ماتریس‌ها را با حروف بزرگ و بردارها و اسکالرها را با حروف کوچک نشان دهیم.
نامگذاری متغیرها در متلب
تصویر ۵: کادر قرمز رنگ یک نمونه از نامگذاری غیرمعمول و کادر سبز نامگذاری رایج در متلب است.
  • نامگذاری طولانی و توصیفی برای متغیرها بیشتر در C++ رایج است و معمولاً با حروف کوچک شروع می‌شود. همچنین در نامگذاری طولانی متغیرها معمولاً از خط تیره برای فاصله بین کلمات استفاده می‌شود اما باید دقت کرد که در متلب خط تیره بین کلمات به عنوان علامت تفاضل در نظر گرفته می‌شود. هر دو مورد در مثال زیر نمایش داده شده‌اند:

linearity , distanceToCircle , figureLabel

linearity , distance_to_circle , figure_label

  • نام متغیرهای منطقی اگر قرار باشد این متغیر فقط مقادیر 0 یا 1 را برای نشان دادن درست یا نادرست بودن عبارت نمایش دهد، باید بیانگر این موضوع باشد. یک تکنیک متداول این است که نام متغیر را با is و یک روش کمتر متداول استفاده از flag است. این موارد در ادامه نمایش داده شده‌اند:

isPrime , isInside , flagCircle

تورفتگی در کدنویسی

اگر تا به حال با ساختارهای تودرتوی  if و for سروکار داشته باشید، احتمالاً متوجه شده‌اید که ممکن است در نگاه اول تشخیص آن ساختارهای تودرتو از سایر قسمت‌های کد دشوار باشد. همچنین، اگر محتویات یک حلقه بیش از تنها چند خط باشد، یک ویژگی بصری ممکن است برای نشان دادن آنچه در داخل و خارج از حلقه است مفید باشد و اینجا است که تورفتگی وارد عمل می‌شود.

تو رفتگی در کد
تصویر ۶: در کادر قرمز رنگ عدم ایجاد تو رفتگی بین سطوح حلقه تشخیص اینکه حلقه اول به کجا ختم می‌شود را دشوار می‌کند. با ایجاد تو رفتگی، کد بسیار واضح‌تر به نظر می‌رسد.

معمولاً هر چیزی در یک حلقه یعنی یک تابع، یک شرط، یک دستور سوئیچ و غیره را با ایجاد تورفتگی در کد ایجاد می‌کنیم. بسته به شرایط مختلف تورفتگی را می‌توان با دو، سه یا چهار فاصله یا یک tab ایجاد کرد. به عنوان یک قاعده کلی، تورفتگی باید تمایز بصری واضحی داشته باشد در حالی که از تمام فضای شما در خط استفاده نمی‌کند. این موضوع را در پاراگراف بعدی مشاهده می‌کنید.

طول خط

عملاً هیچ محدودیتی برای میزان نوشتن روی یک خط کد متلب وجود ندارد. در واقع، می‌توانید هر کد متلب را با جدا کردن دو دستور با یک علامت ؛ یا ، به یک خط تبدیل کنید و هیچ خط دیگری بین آن‌ها تولید نکنید. با این حال، یک خط با یک میلیون کاراکتر به طور بالقوه چندان خوانا نخواهد بود. اما، به صورت کلی سوال این است که چند کاراکتر را می‌توانید در یک خط قرار دهید بدون اینکه محتوای آن را مبهم کنید؟

طول خط در متلب
تصویر ۷: کادر سبز رنگ طول خط ۷۵ کاراکتری در متلب و کادر قرمز طول خط بلندتر از ۷۵ کاراکتر است.

این موضوعی است که باید در مورد آن بحث کرد. به صورت معمول تعداد کاراکتر روی یک خط معمولاً بین 70 تا 80 کاراکتر است. ویرایشگر متن متلب، ۷۵ کاراکتر در هر خط را پیشنهاد می‌دهد. بدین ترتیب، فرد مطمئن است که برای نمایش کد بدون شکستگی خط به صورت مصنوعی یا اسکرول کردن افقی در ویرایشگر، نیازی به داشتن یک نمایشگر عریض نیست. البته ممکن است گاهی اوقات طول خطوط شما بیشتر از ۷۵ کاراکتر باشد، در این مواقع از علامت … استفاده می‌شود تا نشان داده شود که ادامه خط در سطر بعدی نوشته شده است.

فاصله و تراز

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

شکست معنادار در متلب
تصویر ۸: شکست خط غیر معنایی خوانایی کد را کاهش می‌دهد. در تصویر با کادر قرمز نه شکل ماتریس و نه تعداد جمع در عبارت دوم مشخص نیست. در تصویر با کادر سبز شکل و محتویات ماتریس و همچنین عناصر عبارت دوم بلافاصله برای برنامه نویس قابل مشاهده است.

فاصله در عبارات

این ویژگی استفاده از فاصله در عبارات است. قانون این موضوع قرار دادن فاصله در جایی است که در سینتکس متلب تعریف شده است. این موضوع به خوبی در تصویر زیر نشان داده شده است:

فاصله در عبارات
تصویر ۹: عدم وجود فاصله بین جمع دو عدد در کادر قرمز نتیجه ۱۱/۱2 را به عنوان خروجی می‌دهد در حالی که با ایجاد فاصله جواب به ۵٫۵ تغییر می‌کند.

اعداد جادویی

هنگام کدنویسی، گاهی اوقات یک مقدار را ثابت در نظر می‌گیرید زیرا قصد ندارید آن را تغییر دهید. به عنوان مثال، برنامه‌ای را در نظر بگیرید که تعیین می‌کند آیا یک نقطه داده شده خارج از یک دایره با شعاع 1 با مرکز (1،1) و به طور همزمان در داخل مربعی به طول یال 2 قرار دارد یا نه، که دایره در سمت راست مربع قرار دارد.

پس از نوشتن کد، برنامه شامل چند 1 است که مشخص نیست که آیا آن‌ها متمایز هستند یا به یک مقدار یکسان اشاره دارند. این اعداد رمزگذاری شده اغلب اعداد جادویی نامیده می‌شوند، زیرا آن‌ها کاری را که قرار است انجام دهند انجام می‌دهند، اما نمی توان به راحتی دلیل آن را تشخیص داد. در همین برنامه اگر بخواهید شعاع دایره را تغییر دهید، تشخیص و تغییر ۱ هایی که به شعاع اشاره دارند دشوار خواهد بود. راه حل این موضوع در کادر سبز رنگ نمایش داده شده است.

اعداد جادویی در متلب
تصویر ۱۰: در کادر قرمز رنگ بلافاصله مشخص نیست که آیا یک‌های مختلفی که در کد وجود دارند به یک کمیت اشاره دارند یا خیر. به این اعداد اعداد جادویی می‌گویند. در کادر سبز رنگ مفهوم شعاع مشخص است و می‌توان فوراً مشاهده کرد و مقدار آن را به راحتی تغییر داد.

توضیحات

با ارزش ترین کاراکتر برای کلین کد متلب استفاده از کاراکتر %، برای نشان دادن توضیحات مربوط به کد است. همه نشانه‌های بعد از کاراکتر درصد در همان خط تاثیری در کد ندارند و به عنوان توضیحات کد در نظر گرفته می‌شوند.

عناصر ساختاری

همیشه مفید است که ابتدا و انتهای تابع نه تنها با کلمات کلیدی مربوطه نشان داده شود، بلکه با چیزی قابل مشاهده‌تر مشخص شوند. برای جداسازی ظاهری بخش‌های متمایز کد، علائمی را با کاراکترهای #، = یا – در نظر می‌گیریم. این علائم به عنوان مثال زمانی که چندین تابع در یک فایل سورس وجود دارد، یا زمانی که یک حلقه for وجود دارد که روی تعداد زیادی از خطوط اثر می‌گذارد که دیگر به راحتی نمی‌توانید دستور end را پیدا کنید، بسیار مفید است.

تقسیم کردن قسمت‌های مختلف کد
تصویر ۱۱: قسمت‌های مختلف کد از یکدیگر با توضیحات متفاوت جدا شده‌اند و در نتیجه کد خوانا است.

استفاده از پرانتز و براکت

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

با این حال هر زمانی که الویت‌ها را از خاطر برده بودید یا از آن اطمینان نداشتید می‌توانید یک جفت براکت را در محل مورد نظر قرار دهید. این براکت‌ها اگر چه ممکن است غیر ضروری باشند، اما از ایجاد نتیجه نادرست جلوگیری می‌کند. همچنین الویت عملگرها به صورت جدول زیر داده می‌شوند:

استفاده از پرانتز در کد
تصویر ۱۲: بدون دانستن اینکه متلب ابتدا عملگر && یا عملگر || را ارزیابی می‌کند، نمی‌توان مقدار isGood را در کادر قرمز پیش‌بینی کرد. با قرار دادن پرانتزهای (غیر ضروری) در کادر سبز رنگ، نتیجه مشخص است.

  1.  پرانتز ()
  2. ترانهاده (.’)، توان (.^)، ترانهاده مزدوج مختلط(‘)، توان ماتریس (^)
  3. مقدار مثبت یک کمیت (+)، مقدار منفی یک کمیت (-)، نفی منطقی (~)
  4. ضرب (.*)، تقسیم راست (./)، تقسیم چپ (.)، ضرب ماتریس (*)،
    تقسیم سمت راست ماتریس (/)، تقسیم ماتریس چپ ()
  5. جمع (+)، تفریق (-)
  6. عملگر کولون (:) که برای ایجاد بردار، ایجاد آرایه پایین و تکرار در متلب استفاده می‌شود.
  7. کمتر از ()، بزرگتر یا مساوی
    (>=)، برابر با (==)، غیرمساوی با (~=)
  8. عملگر و (&)
  9. عملگر یا (|)
  10. عملگر و (&&)
  11. عملگر یا (||)

خطاها و هشدارها

مهم نیست که چقدر دقیق کد خود را طراحی می‌کنید، زیرا همواره کاربرانی وجود خواهند داشت که می‌توانند با دادن داده‌های ورودی بد جواب‌های اشتباهی از برنامه بگیرند. در حقیقت، این در محاسبات عددی غیرمعمول نیست که کارها اساساً اشتباه پیش می‌روند.

برای مثال شما برنامه‌ای می‌نویسید که یک فرآیند تکرار شونده را روی سیستم معادلات خطی که به صورت $$u^*=A^{-1}b$$ تعریف شده، انجام می‌دهد. این محاسبات برای یک مقدار ورودی مربوط به $$u$$ انجام می‌شود و شما می‌خواهید مقدار $$u^*$$ را به دست آورید. با این حال همگرایی برای معادله فقط برای مقادیر مشخصی از $$A$$ صورت می‌گیرد و اگر مقدار $$A$$ در آن بازه نباشد رفتار تابع نیز غیرمعمولی است.

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

استفاده از دستور warning
تصویر ۱۳: تکرار روی یک متغیر r که قرار است بعد از تعدادی تکرار کوچکتر از tol باشد.در کد در کادر قرمز رنگ اگر شرط کوچکتری رخ ندهد، برنامه هرگز از حلقه هرگز خارج نمی‌شود و CPU را برای همیشه اشغال می‌کند. در کادر سبز رنگ حداکثر تعداد تکرار وجود دارد. وقتی تعداد تکرارها به آن تعداد می‌رسد و شرط کوچکتر بودن ایجاد نمی‌شود با یک دستور اخطار از حلقه خارج می‌شویم.

سوییچ کردن حالت‌ها

دستورهای سوییچ زمانی استفاده می‌شوند که غیر از آن مجبور باشید یک دستور شرطی را با چندین دستور if دیگر بنویسید. آن‌ها همچنین زمانی که شرط ها برای مقایسه عبارت‌های string باشند، بسیار محبوب هستند.

دستورهای شرطی و حلقه 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

عبارت‌های if می‌توانند شامل گزینه‌های جایگزین نیز باشند که این مهم با استفاده از کلمات کلیدی elseif یا else ایجاد می‌شود. برای مثال داریم:

a = randi(100, 1);

if a 

از طرف دیگر، هنگامی که می‌خواهید برابری یا تساوی را در برابر مجموعه‌ای از مقادیر مشخص آزمایش کنید، از دستور 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

برای هر دو دستور switch و if در متلب، کد مربوطه به محض اینکه شرایط لازم در دستور ایجاد می‌شود از حلقه خارج می‌شود. هر عبارت شرطی به کلمه کلیدی end نیز نیاز دارد. به طور کلی هنگامی که مقادیر زیادی از مقادیر گسسته و شناخته شده را دارید، خواندن دستورات سوئیچ راحت‌تر از if است. با این حال، شما نمی‌توانید نابرابری را توسط دستور سوئیچ نشان دهید، یعنی نمی‌توانید برنامه زیر را توسط دستور switch اجرا کنید:

yourNumber = input('Enter a number: ');

if yourNumber  0
    disp('Positive')
else
    disp('Zero')
end

حلقه if در متلب

کد مربوط به دستور حلقه if در متلب، زمانی که شرط درست باشد پایان می یابد. شکل کلی حلقه if در متلب به صورت زیر است:

if expression
    statements
elseif expression
    statements
else
    statements
end

سه عضو اصلی حلقه if در متلب عبارت از if، عبارت یا statment و end است. همچنین نوشتن دستورهای elseif و else اختیاری هستند. در ادامه چندین مثال مربوط به حلقه if در متلب را بررسی می‌کنیم. این مثال‌ها قابل اجرا در صفحه command یا دستورات است.

در مثال اول یک ماتریس یکه با تعداد ۴ سطر و ۶ ستون ایجاد می‌کنیم و سپس با استفاده از حلقه if در متلب قطر اصلی را ۲ و به قطر همسایه قطر اصلی مقدار $$-1$$ را می‌دهیم. بدین ترتیب داریم:

>> nrows = 4;
ncols = 6;
A = ones(nrows,ncols);
>> for c = 1:ncols
    for r = 1:nrows
        
        if r == c
            A(r,c) = 2;
        elseif abs(r-c) == 1
            A(r,c) = -1;
        else
            A(r,c) = 0;
        end
        
    end
end
A

A =

     2    -1     0     0     0     0
    -1     2    -1     0     0     0
     0    -1     2    -1     0     0
     0     0    -1     2    -1     0

برای مقایسه مقادیر یک بردار با یک حد مشخص نیز به صورت زیر می‌توان با استفاده از حلقه if در متلب این مقایسه را انجام داد:

>> limit = 0.75;
A = rand(10,1)

A =

    0.8147
    0.9058
    0.1270
    0.9134
    0.6324
    0.0975
    0.2785
    0.5469
    0.9575
    0.9649

>> if any(A > limit)
    disp('There is at least one value above the limit.')
else
    disp('All values are below the limit.')
end
There is at least one value above the limit.

سایز دو ماتریس دلخواه که تعریف کردیم را نیز می‌توانیم با استفاده از عبارت isequal و استفاده از حلقه if در متلب به صورت زیر مقایسه کنیم و داریم:

>> A = ones(2,3);
B = rand(3,4,5);
>> if isequal(size(A),size(B))
   C = [A; B];
else
   disp('A and B are not the same size.')
   C = [];
end
A and B are not the same size

استفاده از strcmp برای مقایسه کاراکترهای بردار استفاده می‌شود. معمولاً استفاده از == برای آزمایش برابر بودن زمانی که بردارهای کاراکتر اندازه‌های متفاوتی دارند، منجر به خطا می‌شود.

>> reply = input('Would you like to see an echo? (y/n): ','s');
if strcmp(reply,'y')
  disp(reply)
end

برای مشخص کردن این موضوع که آیا یک مقدار در یک بازه مشخص قرار می‌گیرد یا خیر نیز می‌توان از حلقه if در متلب استفاده کرد و بدین ترتیب داریم:

>> x = 10;
minVal = 2;
maxVal = 6;

>> if (x >= minVal) && (x  maxVal)
    disp('Value exceeds maximum value.')
else
    disp('Value is below minimum value.')
end

Value exceeds maximum value.

به عنوان آخرین مثال از حلقه if در متلب می‌خواهیم این حلقه را در یک تابع در متلب استفاده کنیم. برای آشنایی با تابع نویسی در متلب می‌توانید مقاله چگونه در متلب تابع بنویسیم؟ — به زبان ساده را بخوانید. در این مثال کاربر مقدار x را به متلب می‌دهد و با اجرای تابع compare مشخص می‌شود که مقداری که داده‌ایم مثبت، منفی یا صفر است. تابع compare به صورت زیر تعریف می‌شود:

function com = compare(x)

if x > 0
   disp('The number is positive')
elseif x == 0
    disp('The number is zero')
else
    disp ('Kidding! obviously it is negative:)')
end
com=x;
end

برای اجرای برنامه به صورت زیر در صفحه command عمل می‌کنیم و داریم:

>> z=6;
>> com=compare(z)

مطالب آموزش متلب در مجله تم آف

در مجله تم آف نوشتارهای فراوانی برای آموزش زبان برنامه نویسی متلب وجود دارد که با مطالعه آن‌ها می‌توانید به راحتی به این نرم افزار مسلط شوید و با آن‌ کار کنید. برخی از این مطالب را در ادامه معرفی می‌کنیم:

  • نرم افزار متلب چیست و چه کاربردی دارد؟ + معرفی منابع یادگیری Matlab
  • برنامه نویسی در متلب (MATLAB) — راهنمای گام به گام (+ دانلود فیلم آموزش رایگان)
  • کدهای متلب محاسبات عددی | دانلود رایگان مجموعه کامل
  • حل معادله درجه ۲ در متلب | گام به گام (+ دانلود نمونه کد)
  • رسم نمودار ماتریس در متلب | گام به گام و کاربردی
  • ماتریس در متلب — راهنمای جامع (+ دانلود فیلم آموزش رایگان)
  • مشتق در متلب — راهنمای کاربردی
  • فاکتوریل در متلب — راهنمای جامع
  • رسم تابع در متلب — آموزش گام به گام + نمونه کد
  • دستور Sparse در متلب | به زبان ساده
  • پخش بار نیوتن رافسون در متلب — از صفر تا صد
  • رسم نمودار دو بعدی در متلب (+ دانلود فیلم آموزش رایگان)
  • حل دستگاه معادلات دیفرانسیل غیر خطی در متلب | گام به گام

معرفی فیلم‌های آموزش متلب تم آف

منابع آموزشی نرم افزار متلب بسیار فراوان هستند اما بسیاری از منابع به زبان انگلیسی بوده که این موضوع آموزش را برای کسانی که ممکن است به زبان انگلیسی آشنایی کامل نداشته باشند دشوار می‌کند. همچنین با توجه به اینکه دسترسی به وبسایت متلب به صورت کامل برای کاربران ایرانی فراهم نیست، ممکن است فرآیند آموزش و شبیه سازی با این نرم افزار دشوارتر شود. به این دلیل تم آف مجموعه دوره‌های آموزش متلب را برای کاربران با کاربردهای مختلف ضبط و آماده کرده است. این آموزش‌ها را به صورت فهرست وار در ادامه معرفی می‌کنیم و برخی از آن‌ها را به صورت جزئی‌تر برای شما توضیح می‌دهیم. مجموعه آموزش متلب تم آف شامل موارد زیر هستند:

  • آموزش برنامه نویسی متلب (MATLAB)
  • آموزش برنامه نویسی متلب برای علوم و مهندسی
  • مجموعه آموزش های برنامه نویسی متلب پیشرفته
  • آموزش طراحی رابط گرافیکی کاربر (GUI) با متلب (MATLAB) – مقدماتی
  • آموزش طراحی رابط گرافیکی کاربر (GUI) با متلب (MATLAB) – تکمیلی
  • آموزش ساخت ربات تلگرام با متلب (MATLAB)
  • آموزش کدهای بلوکی در متلب (MATLAB)
  • مجموعه آموزش های واقعیت مجازی و ساخت انیمیشن برای کاربران متلب و سیمولینک
  • آموزش رایگان نکات و ترفندهای متلب
  • آموزش آشنایی با تولباکس k-Wave در متلب

معرفی فیلم آموزش برنامه نویسی متلب (MATLAB)

آموزش برنامه نویسی متلب (MATLAB) آموزش برنامه نویسی متلب (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 در متلب را در صفحه دستورات و به صورت تابع اجرا کردیم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.