در بخش قبل نحوه آغاز و ایجاد متغیرهای چند بعدی را آموختیم و در این بخش نحوه نمایه سازی عناصر یا زیر ساختارهای مختلف در یک متغیر چند بعدی مورد بحث قرار می گیرد. منظور از نمایه سازی این است که بتوانیم با استفاده از سطرها ، ستون ها و ابعاد بالاتر به عناصر مورد نظر در مکان خاصی از عنصر دسترسی ، ذخیره و بازیابی کنیم. در تعریف ماتریس ها ، از پرانتز "[…]" استفاده می کنیم ، در حالی که در نمایه سازی از پرانتز "(i ، j ، k ،…)" استفاده می کنیم ، جایی که i ، j ، k ،… نمایانگر زیرنویس/نمایه ابعاد یک متغیر هستند. به اجازه دهید چند مثال را نشان دهیم.
مثال 2.15: نمایه سازی ماتریس (1)
[نمودارها و جداول در این پیش نمایش حذف شده است.]
010: در این مثال ، برای دسترسی به یک عنصر خاص در ماتریس m کافی است "()" را اضافه کرده و شماره ردیف 1 و ستون شماره 2 nd m (r، c) عنصر مورد نظر را وارد کنید. تغییرات مختلف ارائه شده به عنوان مثال در 010 ، 016 ، 022 ، 028 ، 034 و 040 را مشاهده کنید.
در مثالهای زیر از نمایه سازی برای استخراج و دستکاری عناصر یک ماتریس استفاده خواهیم کرد. ما نحوه استخراج یک ستون ، یک سطر ، یک ماتریس فرعی و نحوه تنظیم آنها را به صورت دلخواه نشان خواهیم داد.
مثال 2.16: نمایه سازی ماتریس (2)
[نمودارها و جداول در این پیش نمایش حذف شده است.]
001: نمایش مجدد همان ماتریس قبلی تولید شده m.
010: استخراج ستون 1 و ذخیره آن در v.
019: استخراج ردیف 1 و ذخیره آن در v.
025: استخراج یک ماتریس فرعی از m به عنوان: سطرهای 1 تا 2 و ستونهای 1 تا 3.
032: استخراج ستون 5 و ذخیره آن در v.
040: استخراج ردیف سوم و ذخیره آن در v.
047: استخراج یک سطر فرعی به عنوان عناصر از 3 تا 7 فهرست در ردیف 3.
053: بازسازی ماتریس m با اندازه کوچکتر برای صرفه جویی در فضا در مثال بعدی در 060.
060: این خطی شدن ماتریس m نامیده می شود که در آن همه عناصر به صورت آرایه 1D استخراج می شوند. برای انجام این کار از عملگر (:) استفاده می شود.
مثال 2.17: نمایه سازی ماتریس (3)
[نمودارها و جداول در این پیش نمایش حذف شده است.]
009: استفاده از کلمه کلیدی "end" آخرین شاخص ردیف ها ، ستون ها یا عناصر را نشان می دهد.
017: تنظیم ستون ماتریس بردار مشخص شده.
026: تنظیم یک ردیف ماتریس بردار مشخص شده.
034: حذف یک ستون با تنظیم بردار خالی "[]".
042: تنظیم یک ماتریس فرعی بر روی یک ماتریس مربعی از صفر.
050: چرخاندن یک ماتریس در اطراف بعد ستون با بازآرایی نمایه های ستون از طریق یک فضای خطی به ترتیب نزولی با استفاده از عملگر ":".
058: چرخاندن یک ماتریس در اطراف ابعاد ردیف با تنظیم مجدد نمایه های ردیف با ارائه بردار نمایه ها با آرایش جدید ردیف ها.
اگر متغیرهای ابعادی بالاتری داریم ، باز هم به طور مشابه با آنها برخورد می کنیم. داده های سه بعدی را به عنوان لایه هایی از ماتریس های دو بعدی تصور کنید. با استفاده از 3 شاخص (مانند مختصات x ، y ، z) که در شکل 2.2 نشان داده شده است ، می توانید به هر عنصر در 3D دسترسی پیدا کنید. مثال بعدی یک ماتریس سه بعدی را نشان می دهد.
[نمودارها و جداول در این پیش نمایش حذف شده است.]
شکل 2.2: تجسم ماتریس سه بعدی (کار خود نویسنده)
مثال 2.18: نمایه سازی ماتریس (4)
[نمودارها و جداول در این پیش نمایش حذف شده است.]
001: ایجاد یک ماتریس سه بعدی با استفاده از تابع rand با عبور از 3 آرگومان از # سطر ، # ستون و # لایه از ماتریس
023: استخراج لایه اول ماتریس سه بعدی که ماتریس 1 دو بعدی در پشته است
031: استخراج ستون 1 در تمام لایه ها. توجه کنید که 3 ستون برگشت داده شد.
053: استخراج ستون 1 در تمام لایه ها. توجه کنید که 3 ستون برگشت داده شد.
069: استخراج یک ماتریس فرعی از تمام لایه ها. توجه داشته باشید که 3 زیر ماتریس برگشت داده شد
2.4 ساختارها و آرایه های سلولی
اگرچه ساختار داده ماتریس در محیط MATLAB غالب است ، اما دو ساختار مهم دیگر داده وجود دارد: ساختارها (سوابق) و آرایه های سلولی. آرایه ها برای داده های همگن طراحی شده اند ، یعنی همه عناصر باید نوع داده های یکسانی داشته باشند تا بتوانیم آرایه ای از اعداد صحیح ، آرایه ای از واقعیات ، آرایه ای از کاراکترها ، آرایه ای از رشته ها و غیره داشته باشیم ، اما نمی توانیم بین این نوع داده ها در یک آرایه مخلوط کنیم. اما وقتی اشیایی داریم که دارای ویژگی های ناهمگن هستند ، چه می کنید. برای مثال یک وسیله نقلیه دارای این ویژگی ها است: ساخت (رشته) ، سال (عدد صحیح) ، اندازه موتور (واقعی) ، رنگ (رشته) و غیره چگونه می توان همه این انواع داده های ناهمگن را در یک آرایه ذخیره کرد؟ ساختارها و آرایه های سلول به نجات می رسند. مثالهای زیر مفهوم و کاربرد این دو ساختار را نشان می دهد.
مثال 2.19: ساختارها
[نمودارها و جداول در این پیش نمایش حذف شده است.]
001: تعریف یک ساختار با نام "student" و اختصاص نام و مقدار اولین فیلد. نام فیلد اول "name" و مقدار آن "aaron rababaah" است.
007: خطوط 007 - 031 فیلدهای بیشتری اضافه کنید و مقادیر آنها را به آنها اختصاص دهید.
041: هر زمان که نام ساختار را تایپ کرده و enter را بزنید ، سیستم همه فیلدها و مقادیر قابل احترام آنها را نمایش می دهد.
051: خطوط 051 - 071 نحوه ایجاد مجموعه ای از ساختارها را نشان می دهد. سه ساختار x ، y و z ایجاد می شوند. در یک زمان ، آنها در مجموعه ای از ساختارهای "s" ذخیره می شدند.
073: خطوط 073 - 089 نحوه دسترسی را نشان می دهد