سبد (0)

آرایه های سلولی و ساختارها

ماتریس های که تا حالا ایجاد کرده ایم، همه دارای نوع داده ی double یا uint8 بوده اند. هر ماتریسی که شما ایجاد کنید، همین نوع داده را خواهد داشت. زیرا شما نمی توانید نوع داده ها را در یک ماتریس با یکدیگر ترکیب کنید.

دو مفهوم دیگر نیز برای ذخیره ی داده ها وجود دارند:

1. آرایه ی سلولی: که مانند یک صفحه ی گسترده عمل می کند. 

2. ساختار: که مانند یک رکورد در یک دیتابیس عمل می کند. 

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


درک آرایه های سلولی

آرایه های سلولی مانند صفحه های گسترده هستند زیرا یک سلول در یک آرایه ی سلولی مانند یک سلول در یک صفحه ی گسترده( مانند Excel) می باشد. در حقیقت هنگامی که شما یک صفحه ی گسترده را در متلب Import می کنید، هر سلول صفحه ی گسترده به یک سلول از آرایه ی سلولی متلب تبدیل می شود. چون که صفحه های گسترده خیلی محبوب هستند، شما احتمالا به یک صفحه ی گسترده برخورد می کنید تا یک ساختار. 

برای ایجاد یک آرایه ی سلولی، لازم است از تابع ()cell استفاده کنید. بعنوان مثال برای ایجاد یک آرایه ی سلولی 2x2x2،

عبارت (an = cell(2, 2, 2 را در متلب وارد کنید و کلید Enter را فشار دهید. نتیجه ی زیر حاصل خواهد شد:

 

همان طور که مشاهده می کنید سلول ها خالی هستند. برای دستیابی به عناصر آرایه های سلولی، باید از آکولادها ({}) استفاده کنید. برای اینکه آرایه ی سلولی an قابل استفاده باشد، کدهای زیر را وارد کنید و پس از هر خط، کلید Enter را فشار دهید:

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

همان طور که مشاهده می کنید، خروجی مانند دیگر ماتریس های چند بعدی است. و شما همانند ماتریس ها می توانید به عناصر آنها دسترسی داشته باشید، البته با این تفاوت که از آکولادها باید استفاده کنید. بعنوان مثال عبارت {an{1, :, 2 را در متلب تایپ کنید و کلید Enter را فشار دهید تا اولین سطر از لایه 2 را در خروجی مشاهده کنید:

مطلب برای مشخص کردن true و false از 0 و 1 استفاده می کند. برای اینکه این موضوع را برای خودتان امتحان کنید، عبارت true را در متلب تایپ کنید و کلید Enter را فشار دهید. خواهید دید که عدد 1 بعنوان خروجی برگردانده می شود. حالا عبارت false را تایپ کنید و کلید Enter را فشار دهید، خواهید دید که عدد 0 بعنوان خروجی برگردانده می شود. 

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


درک ساختارها

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

MyStruct =struct('FirstName', 'Amy', 'LastName', 'Jones', 'Age', 32, 'Married', false)

را در متلب تایپ کنید و کلید Enter را فشار دهید. نتیجه ی زیر ظاهر خواهد شد:

 توجه کنید که چطور نام فیلد ها با مقادیر مربوطه یک جفت را تشکیل داده اند. یک ساختار، درست مانند یک دیتابیس، برای نگهداری داده ها در حافظه طراحی شده است. در حال حاضر، ساختار MyStruct در داخل خود دارای یک رکورد می باشد. برای دستیابی به این رکورد، می توانید عبارت (MyStruct(1 را تایپ کنید و کلید Enter را فشار دهید. نتیجه ی زیر حاصل خواهد شد:

این امکان وجود دارد که شما نخواهید تمامی رکورد را برگردانید. پس برای دسترسی به یک فیلد خاص، ابتدا یک نقطه قرار دهید و سپس نام فیلد را وارد کنید. بعنوان مثال عبارت MyStruct(1).LastName را تایپ کنید و کلید Enter را فشار دهید تا به فیلد LastName دسترسی پیدا کنید. نتیجه به صورت زیر خواهد بود:

یک رکورد تنها، خیلی کاربردی نیست. ممکن است شما بخواید رکورد های زیادی را در یک ساختار وارد کنید. برای اضافه کردن یک رکورد دیگر به MyStruct، عبارت:

 MyStruct(2) =struct('FirstName', 'Harry', 'LastName', 'Smith', 'Age', 35, 'Married', true)

را تایپ کنید و کلید Enter را فشار دهید. نتیجه ی زیر حاصل خواهد شد:

 در خروجی بالا، تعداد رکورد ها نشان داده شده است. حالا برای بررسی کردن دومین رکورد، عبارت (MyStruct(2 را تایپ کنید و کلید Enter را فشار دهید. نتیجه به صورت زیر خواهد بود:

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

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