متغیرها و دستورات انتساب در متلب
به منظور ذخیره ی یک مقدار در متلب، می توانیم از متغیرها استفاده کنیم. با تعریف یک متغیر و مقدار دهی به آن، این متغیر در پنجره ی Workspace نمایش داده می شود. یک راه ساده برای ایجاد متغیر وجود دارد، و آن استفاده از علامت مساوی یا همان انتساب است. به مثال زیر توجه کنید:
مقدار متغیر = نام متغیر
در انتساب، متغیر در سمت چپ قرار می گیرد، سپس یک علامت مساوی قرار می دهیم و پس از آن مقدار مورد نظر یا عبارت دلخواه قرار می گیرد. کارکرد عملگر انتساب یا همان عملگر مساوی، با علامت مساوی در ریاضی کمی متفاوت است. ابتدا عبارت سمت راست آن ارزیابی می شود و سپس مقدار آن در متغیر ذخیره می شود.
در مثال زیر، یک متغیر به نام mynum تعریف کرده ایم و مقدار 6 را در آن ذخیره کرده ایم:
در دستور بالا، ابتدا کاربر عبارت mynum = 6 را در خط فرمان وارد می کند و سپس متلب عدد صحیح 6 را در متغیری به نام mynum ذخیره می کند و سپس نتیجه را نمایش می دهد.
توجه کنید که نام یک متغیر به هنگام انتساب، باید همواره در سمت چپ قرار بگیرد و عبارت مورد نظر باید در سمت راست باشد. در غیر این صورت یک خطا به وقوع خواهد پیوست. به مثال زیر توجه کنید:
استفاده از یک سمی کالن در پایان یک عبارت، از ایجاد خروجی جلوگیری می کند. بعنوان مثال داریم:
با اجرای دستور بالا، ابتدا عبارت 2-9 در سمت راست محاسبه می شود و سپس عدد 7 در متغیر res ذخیره می شود. همان طور که مشاهده می کنید، پس از اجرای دستور بالا، هیچ خروجی نمایش داده نشده است و به جای آن بلافاصله یک علامت prompt نمایش داده شده است. اما اگر به پنجره ی Workspace نگاهی بیاندازید، خواهید دید که هر دوی متغیرهای mynum و res و مقادیر آنها، قابل مشاهده هستند.
به یاد داشته باشید که فاصله های سفیدی که در یک دستور یا عبارت وجود دارند، در نتیجه ی نهایی تاثیری ندارند. اما فایده ی آنها این است که باعث می شوند خوانایی عبارات بیشتر شود. همان طور که در زیر مشاهده می کنید، در این عبارت از هیچ فاصله ی سفیدی استفاده نشده است، ولی نتیجه ی آن با قبلی یکسان است:
در صورتی که در متلب، در prompt یک عبارت را تایپ کنید که به هیچ متغیری انتساب داده نشده باشد، متلب از یک متغیر پیش فرض به نام ans استفاده می کند. بعنوان مثال در عبارت زیر، مقدار 3+6 در متغیر ans ذخیره می شود:
از متغیر پیش فرض ans زمانی استفاده می شود که تنها از یک عبارت، در prompt استفاده کنیم و آن را به چیزی انتساب ندهیم. توجه کنید که اگر از ans بعنوان نام یک متغیر استفاده کنید و یا از آن در داخل عبارات خود استفاده کنید، ایده ی جالبی نمی باشد.
یک راه میانبر برای استفاده ی دوباره از دستورات، این است که از دکمه ی جهت بالا ↑ استفاده کنیم. این دکمه باعث می شود تا به دستور یا عبارت تایپ شده ی قبلی برگردیم . بعنوان مثال (با توجه به مثال بالا) اگر بخواهید به جای استفاده از متغیر پیش فرض ans، مقدار 3+6 را در یک متغیر به نام result ذخیره کنید، می توانید دکمه ی جهت بالا ↑ را فشار دهید و سپس از دکمه ی جهت سمت چپ ← برای اصلاح دستور مورد نظر استفاده کنید. با استفاده از این روش، دیگر نیازی نیست عبارت مورد نظر را دوباره تایپ کنید:
این ترفند بسیار کاربردی می باشد، زیرا در صورتی که یک عبارت بلند را در متلب وارد کرده باشم به طوری که حاوی یک خطا باشد، می توانیم به عقب برگردیم و آن را اصلاح کنیم.
این امکان نیز وجود دارد تا دستورات قبلی را در پنجره ی Command History انتخاب کنیم و با راست کلیک کردن بر روی آن دستور، آن را بازیابی کنیم. برای انتخاب کردن دستورات متوالی، می توانید بر روی اولین یا آخرین دستور کلیک کنید و سپس با استفاده از دکمه ی Shift و جهت های پایین و بالا، آنها را انتخاب کنید.
برای تغییر دادن مقدار یک متغیر، می توانید یک عبارت دیگر را به آن انتساب دهید. بعنوان مثال به دستورات متوالی زیر توجه کنید:
در اولین دستور، مقدار 3، به متغیر mynum انتساب داده شده است. در دستور بعدی، مقدار عبارت 2+4 به متغیر mynum انتساب داده شده است. در دستور سوم، مقدار عبارت mynum+1 به این متغیر انتساب داده شده است. به دلیل اینکه متغیر mynum از انتساب قبلی، حاوی مقدار 6 بوده است، در دستور سوم، مقدار این متغیر برابر با 1+6 یا همان 7 خواهد شد.
اکنون اگر عبارات mynum + 3 را وارد کنید، به دلیل اینکه این عبارت به هیچ متغیری انتساب داده نشده است، از متغیر پیش فرض ans برای نگهداری مقدار آن، استفاده می شود. بنابراین مقدار متغیر ans برابر با 10 می شود اما مقدار متغیر mynum تغییری نمی کند( و هنوز برابر با 7 خواهد بود). توجه کنید که اگر تنها نام یک متغیر را در متلب تایپ کنید، تنها مقدار آن نمایش داده می شود. (همچنین می توانید این متغیر را در پنجره ی Workspace مشاهده کنید):
- نوشته شده توسط احسان عباسی
- بازدید: 6942