انتخاب درایه های ماتریس ها در متلب

چاپ

برای اشاره به درایه های ماتریس ها، می توان شماره ی سطر و ستون آن درایه را در بین پرانتزها وارد نمود( همواره ابتدا سطر قرار می گیرد و سپس ستون). دستور زیر یک ماتریس به نام mat را تولید می کند و سپس به مقدار قرار گرفته در سطر دوم و ستون سوم از این ماتریس، اشاره می کند:

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

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

 در مثال زیر، تمامی درایه های قرار گرفته در ستون دوم، انتخاب می شوند:

 در صورتی که از یک اندیس تکی، در یک ماتریس استفاده کنیم، متلب آن ماتریس را ستون به ستون پیمایش می کند. بعنوان مثال به ماتریس intmat که در زیر ایجاد شده است توجه کنید. دو عدد اول انتخاب شده، از اولین ستون هستند، و دو عدد بعدی از ستون دوم آن ماتریس انتخاب شده اند:

 به این روش اندیس گذاری خطی(linear indexing) گفته می شود. 

متلب ماتریس ها را در حافظه به ترتیب ستونی ذخیره می کند. پس دلیل اینکه در اندیس گذاری خطی، درایه ها به ترتیب ستون قرار می گرفتند، همین است. 

اگر بخواهیم به یک درایه ی تکی، که در یک ماتریس قرار دارد، مقدار جدیدی انتساب دهیم، به صورت زیر عمل می کنیم:

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

 توجه کنید که چون یک سطر کامل مورد تغییر قرار گرفته است، باید یک بردار سطری با طول صحیح را انتساب دهیم. 

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

 هنگامی که بخواهیم یک ماتریس را توسعه دهیم، نمی توان از یک مقدار تکی استفاده نمود. بلکه باید یک ردیف یا ستون کامل را اضافه کنیم. بعنوان مثال، در مثال زیر به ماتریس mat که قبلا آن را ایجاد کردیم، چهارمین ستون را اضافه می کنیم:

 درست همان طور که در استفاده از بردارها مشاهده نمودید، اگر که بین ماتریس مورد نظر و آن سطر یا ستونی که می خواهید اضافه کنید فاصله وجود دارد، متلب آنها را با استفاده از صفرها، پر می کند: