تفاوت آرایه ها (Array) و آرایه های سلولی (Cell Array)، در متلب (MATLAB)
آرایه های سلولی (Cell Array) نوع خاصی از آرایه ها (Array) می باشند که در آنها محدودیت های مربوط به آرایه ها (Array) که مجبور بودیم ((نوع اطلاعات)) (Data Type) و ((اندازه اطلاعات)) یکسان ذخیره کنیم را نداریم و می توانیم ((اطلاعات از نوع دلخواه و با اندازه دلخواه)) را ذخیره کنیم و بنابراین در آرایه های سلولی (Cell Array) اطلاعات موجود در سلول های (Cell) مختلف می توانند کاملا متفاوت باشند.
برای تعریف آرایه ها (Array) از علامت های ] و [ استفاده می شود، اما برای تعریف آرایه های سلولی (Cell Array) باید علامت های } و { را به کار ببریم.
برای اینکه علت استفاده از آرایه های سلولی (Cell Array) به جای آرایه ها (Array) را متوجه شوید، ابتدا برخی محدودیت های آرایه ها (Array) را به شما نشان می دهیم.
مشکل اول : تبدیل شدن نوع اطلاعات در هنگام استفاده از آرایه ها (Array)
ابتدا آرایه (Array) زیر را تعریف می کنیم :
نتیجه :
همان طور که مشاهده می کنید یک آرایه (Array) تعریف کرده ایم که از نوع آرایه رشته ای (String Array) می باشد (زیرا همه عنصرهای آن رشته می باشند) و دارای 3 عنصر است و هر 3 عنصر آن از نوع رشته (String) هستند. دقت کنید که علامت " (علامت Double Quotes) برای تعریف رشته ها (String) در متلب (MATLAB) به کار می رود.
اکنون می خواهیم همان آرایه (Array) بالا را داشته باشیم با این تفاوت که یک عنصر چهارم به آن اضافه شده باشد که از نوع عدد باشد (نه از نوع رشته) (با مقدار 1). بنابراین کد متلب (MATLAB) زیر را می نویسیم :
نتیجه :
ولی مشاهده می کنیم که علامت " (علامت Double Quotes) در دو طرف 1 نوشته شده، یعنی به صورت یک رشته (String) ذخیره شده است، در صورتی که ما می خواستیم به صورت یک عدد (از نوع عدد) ذخیره شود. یعنی آرایه ای از رشته ها (String Array) داریم که 4 رشته در آن ذخیره شده.
اکنون فرض کنید که بخواهیم به عنوان عنصر پنجم، یک آرایه کاراکتری (Character Array) را در آرایه (Array) ذخیره کنیم. این بار کد متلب (MATLAB) زیر را می نویسیم :
نتیجه :
مشاهده می کنیم که علامت " (علامت Double Quotes) در دو طرف DE نوشته شده، یعنی به صورت یک رشته (String) ذخیره شده است، در صورتی که ما می خواستیم به صورت آرایه کاراکتری (Character Array) ذخیره شود. دقت کنید که علامت ' (علامت Single Quotes) برای تعریف آرایه کاراکتری (Character Array) به کار می رود و ما این علامت را در دستور تعریف آرایه (Array) به کار برده بودیم، اما نتیجه دلخواهمان به دست نیامد (اگر تفاوت استفاده از علامت " (علامت Double Quotes) و علامت ' (علامت Single Quotes) را نمی دانید، کلید شماره 4029 را بخوانید).
مشکل دوم : عدم امکان ذخیره اطلاعات با اندازه های مختلف در آرایه ها (Array)
فرض کنید که ابتدا آرایه (Array) زیر را داریم :
نتیجه :
حال می خواهیم که عنصر چهارم این آرایه (Array) خود برابر یک آرایه (Array) شامل دو عنصر باشد، بنابراین ببینیم که آیا کد زیر به درستی عمل می کند یا خیر (آرایه دو عنصری را درون این آرایه می نویسیم) :
نتیجه :
مشاهده می کنید که آنچه تصور می کردیم اتفاق نیفتاد و دو عنصر آرایه مورد نظر، اولا از نوع عدد به نوع رشته (String) تبدیل شدند و دوما به عنوان عنصرهای چهارم و پنجم آرایه (Array) در نظر گرفته شدند.
نتیجه گیری : استفاده از آرایه های سلولی (Cell Array) برای رفع دو مشکل مورد نظر
آرایه های سلولی (Cell Array) دارای دو مشکل قبلی نیستند و برای رفع آنها در نظر گرفته شده اند.
از علامت های } و { برای تعریف آرایه های سلولی (Cell Array) استفاده می شود.
به مثال زیر توجه کنید :
3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
یک آرایه سلولی (Cell Array) تعریف کرده ایم و سپس مقدار تک تک سلول های (Cell) آن را در خروجی نمایش داده ایم.
نتیجه :
مشاهده می کنید که نوع (Type) اطلاعات تغییر نکرده است.
یک آرایه سلولی (Cell Array) تعریف کرده ایم و سپس مقدار تک تک سلول های (Cell) آن را در خروجی نمایش داده ایم.
نتیجه :
مشاهده می کنید که آرایه (Array) شامل دو عنصر (شامل دو مقدار 1 و 2) به عنوان عنصر چهارم آرایه سلولی (Cell Array) ذخیره شده.