نام گذاری و اصلاح درایه ها در متلب
درایه های درون یک بردار، بصورت پی در پی شماره گذاری می شوند. به شماره ی هر یک از درایه ها، اندیس(index) گفته می شود. در نرم افزار متلب، اندیس ها از 1 شروع می شوند. بعنوان مثال، برای متغیر newvec که قبلا آن را ایجاد کردیم، طبق عکس زیر، اندیس ها(اعداد 1 تا 10) در بالای این بردار، نشان داده شده اند:
برای دسترسی به یک درایه ی خاص در یک بردار، می توانیم از نام متغیر آن بردار استفاده کنیم و اندیس آن درایه را در بین پرانتزها قرار دهیم. بعنوان مثال، پنجمین درایه در بردار newvec عدد 9 است:
در متلب می توان یک زیرمجموعه از یک بردار، که خود یک بردار است، را با استفاده از علامت دونقطه، به دست آورد. مثلا با نوشتن دستور مثال زیر، درایه های چهارم تا ششم، از بردار newvec انتخاب شده اند و در متغیر b ذخیره شده اند:
این لازم نیست که حتما از اندیس های متوالی استفاده کنیم. بعنوان مثال، در مثال زیر اولین و دهمین و پنجمین درایه ها از بردار newvec انتخاب شده اند و در متغیر ans قرار گرفته اند:
به بردار \([1\quad 10\quad 5]\) یک بردار اندیسی(index vector) گفته می شود. یک بردار اندیسی، درواقع اندیس هایی از بردار اصلی را که می خواهیم از مقدار آنها استفاده کنیم، مشخص می کند.
با استفاده از اندیس ها، می توانیم مقدار ذخیره شده در یک درایه را تغییر دهیم. بعنوان مثال، برای تغییر دادن دومین درایه از بردار b (در مثال های بالا) به عدد 11(به جای 9) می توانیم بصورت زیر عمل کنیم:
اگر از یک اندیس استفاده کنیم که هنوز وجود ندارد، می توان یک بردار را بزرگتر کنیم(توسعه دهیم). بعنوان مثال، در مثال زیر، یک بردار ایجاد می شود که حاوی 3 درایه است. سپس اگر یک مقدار را به چهارمین درایه انتساب دهیم، این بردار گسترده تر می شود و دارای 4 درایه می شود(چون قبلا در اندیس شماره 4 هیچ مقداری نبوده است):
در صورتی که بین انتهای بردار قبلی، با درایه ی مشخص شده ی جدید، فاصله ای وجود داشته باشد، این فاصله ها با مقدار 0 پر خواهند شد. بعنوان مثال، در مثال زیر دوباره متغیر rv را گسترش داده ایم:
همان طور که بعدا توضیح خواهیم داد، استفاده از این روش جالب نیست. چرا که این روش بسیار وقت گیر است.
تمرین 2.1
ابتدا کمی درباره ی دستورات متوالی زیر فکر کنید سپس آنها را در متلب وارد کنید تا نتیجه را مشاهده نمایید:
- نوشته شده توسط احسان عباسی
- بازدید: 13949