ساخت آرایه های دسته بندی (Categorical Array) و مشاهده مقدار (Value) عنصرهای (Element) آن و مشاهده فهرست دسته بندی های (Category) مربوط به آن، با دستورهای categorical و categories ، در متلب (MATLAB)
در متلب (MATLAB)، با انواع (Type) اطلاعات (Data) سر و کار داریم که یکی از آنها، اطلاعات از نوع دسته بندی (Categorical) می باشد.
یک آرایه دسته بندی (Categorical Array)، متغیری (Variable) با اطلاعات از نوع دسته بندی (Categorical) می باشد.
در اطلاعات از نوع دسته بندی (Categorical)، تعدادی دسته بندی (Category) داریم که مقدار (Value) عنصرهای (Element) متغیر (Variable) را از بین آنها انتخاب می کنیم. یعنی وقتی یک آرایه دسته بندی (Categorical Array) می سازیم، تعدادی دسته بندی (Category) داریم که مربوط به آن است و از بین آنها مقدار عنصرهای آرایه دسته بندی (Categorical Array) را انتخاب می کنیم.
پس این مفهوم مهم را در ذهن خود داشته باشید که هر آرایه دسته بندی (Categorical Array) در واقع ((دو سری اطلاعات)) را در خود دارد :
1- فهرست دسته بندی های (Category) مربوط به آن آرایه دسته بندی (Categorical Array) که مقدار (Value) عنصرهای (Element) آرایه دسته بندی (Categorical Array) از بین آنها انتخاب می شود
2- مقدار (Value) عنصرهای (Element) آرایه دسته بندی (Categorical Array)
وقتی شما با یک آرایه دسته بندی (Categorical Array) سر و کار دارید و آن را در خروجی متلب (MATLAB) نمایش می دهید، تنها مقدار (Value) عنصرهای (Element) آرایه دسته بندی (Categorical Array) در خروجی متلب (MATLAB) نمایش داده می شود، اما این آرایه دسته بندی (Categorical Array) دارای اطلاعات دیگری نیز می باشد، که همان فهرست دسته بندی های (Category) مربوط به آن آرایه دسته بندی (Categorical Array) است که مقدار (Value) عنصرهای (Element) آرایه دسته بندی (Categorical Array) از بین آنها انتخاب شده است. برای نمایش فهرست دسته بندی های (Category) مربوط به آرایه دسته بندی (Categorical Array)، باید دستور categories
در متلب (MATLAB) را به کار ببریم.
پس این نکته مهم را فراموش نکنید که برای بررسی هر آرایه دسته بندی (Categorical Array)، باید دو مورد زیر را انجام دهیم :
1- آرایه دسته بندی (Categorical Array) را در خروجی متلب (MATLAB) نمایش می دهیم تا مقدار (Value) عنصرهای (Element) آن را ببینیم
2- با دستور categories
در متلب (MATLAB)، فهرست دسته بندی های (Category) مربوط به آن آرایه دسته بندی (Categorical Array) را مشاهده کنیم
به عنوان مثال، دسته بندی های (Category) زیر را در نظر می گیریم :
- مثبت (positive)
- منفی (negative)
- صفر (zero)
بنابراین 3 دسته بندی (Category) با عنوان های positive و negative و zero داریم. حال اگر بخواهیم یک آرایه دسته بندی (Categorical Array) بر اساس آن دسته بندی ها (Category) بسازیم، مقدار (Value) هر یک از عنصرهای (Element) آرایه دسته بندی (Categorical Array)، یکی از 3 مقدار positive و negative و zero خواهد بود.
مثلا فرض کنید که بخواهیم یک آرایه دسته بندی (Categorical Array) شامل 5 عنصر (Element) با مقدارهای زیر بسازیم :
برای این منظور، ابتدا این مقادیر (Value) را در یک آرایه (Array) تعریف می کنیم و سپس با استفاده از دستور categorical
در متلب (MATLAB)، یک آرایه دسته بندی (Categorical Array) بر اساس مقادیر آن آرایه (Array) می سازیم :
نتیجه :
به دست آوردن فهرست دسته بندی های (Category) مربوط به یک آرایه دسته بندی (Categorical Array)، با دستور categories
، در متلب (MATLAB) :
با استفاده از دستور categories
در متلب (MATLAB)، می توانیم فهرست دسته بندی های (Category) مربوط به یک آرایه دسته بندی (Categorical Array) را به دست آوریم.
به مثال زیر توجه کنید :
همان مثال قبلی را این بار به همراه دستور categories
اجرا می کنیم :
3 خط اول کدها برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
نتیجه :
مشاهده می کنید که سه دسته بندی negative و positive و zero به عنوان فهرست دسته بندی های (Category) مربوط به آرایه دسته بندی (Categorical Array) تشخیص داده شده، زیرا هنگام ساخت آرایه دسته بندی (Categorical Array)، این سه دسته بندی در عنصرها ذکر شده اند.
چگونگی مشخص کردن فهرست دسته بندی های (Category) مربوط به یک آرایه دسته بندی (Categorical Array)، در متلب (MATLAB) :
وقتی که می خواهیم یک آرایه دسته بندی (Categorical Array) جدید بسازیم، هم باید فهرست دسته بندی های (Category) مربوط به آن آرایه دسته بندی (Categorical Array) را مشخص کنیم و هم مقدار (Value) عنصرهای (Element) آن آرایه دسته بندی (Categorical Array) را تعیین کنیم.
همان طور که در مثال قبل مشاهده کردید، وقتی با استفاده از دستور categorical
یک آرایه دسته بندی (Categorical Array) می سازیم و مقدار (Value) عنصرهای (Element) آن در همان زمان ساخت مشخص می شود، به صورت خودکار، دسته بندی هایی (Category) که به عنوان مقدار (Value) عنصرهای (Element) آن آرایه دسته بندی (Categorical Array) ذکر شده اند، به عنوان فهرست دسته بندی های (Category) مربوط به آرایه دسته بندی (Categorical Array) در نظر گرفته می شوند. حال اگر همه دسته بندی های (Category) مورد نظرمان برای آرایه دسته بندی (Categorical Array) در عنصرهای (Element) آن ذکر شده باشند، بنابراین فهرست دسته بندی های (Category) مربوط به آرایه دسته بندی (Categorical Array) کامل است، اما اگر یک یا چند دسته بندی (Category) باشد که ما در ذهن خود برای آرایه دسته بندی (Categorical Array) در نظر گرفته ایم اما فعلا در عنصرهای (Element) آرایه دسته بندی (Categorical Array) ذکر نشده اند، باید خودمان با استفاده از دستور addcats آنها را به فهرست دسته بندی های (Category) مربوط به آرایه دسته بندی (Categorical Array) اضافه کنیم.
شیوه به کار بردن دستور addcats را در آموزش زیر شرح داده ایم :
البته استفاده از دستور addcats برای زمانی است که قبلا با استفاده از دستور categorical
آرایه دسته بندی (Categorical Array) را ساخته باشیم، اما در هنگام استفاده از خود دستور categorical
برای ساخت آرایه دسته بندی (Categorical Array) نیز می توانیم فهرست دسته بندی های (Category) مربوط به آرایه دسته بندی (Categorical Array) را تعریف کنیم که در آن چند دسته بندی (Category) باشد که در عنصرهای آرایه دسته بندی (Categorical Array) ذکر نشده باشند. این مورد را در مثال زیر نشان داده ایم :
نتیجه :
در این حالت که فهرست دسته بندی ها (Category) را در پرانتز دستور categorical
می نویسیم، اگر یک یا چند مقدار (Value) که برای عنصرهای آرایه دسته بندی (Categorical Array) ذکر کرده ایم، در این فهرست دسته بندی ها (Category) وجود نداشته باشد، آنگاه به جای آن مقدارها، undefined در عنصرها قرار می گیرد.
برای درک بهتر این موضوع، به مثال زیر توجه کنید :
نتیجه :
مثال های بیشتر :
دسته بندی های (Category) زیر را در نظر می گیریم :
- رنگ آبی (blue)
- رنگ سبز (green)
- رنگ قرمز (red)
بنابراین 3 دسته بندی (Category) با عنوان های blue و green و red داریم. حال اگر بخواهیم یک آرایه دسته بندی (Categorical Array) بر اساس آن دسته بندی ها (Category) بسازیم، مقدار (Value) هر یک از عنصرهای (Element) آرایه دسته بندی (Categorical Array)، یکی از 3 مقدار blue و green و red خواهد بود.
اکنون می خواهیم یک آرایه دسته بندی (Categorical Array) شامل 6 عنصر (Element) با مقدارهای زیر بسازیم :
برای این منظور، ابتدا این مقادیر (Value) را در یک آرایه (Array) تعریف می کنیم و سپس با استفاده از دستور categorical
در متلب (MATLAB)، یک آرایه دسته بندی (Categorical Array) بر اساس مقادیر آن آرایه (Array) می سازیم :