ذخیره اطلاعات ماتریس ها (ماتریس های دارای تعداد صفر زیاد) در حافظه (Memory) کمتر، بر اساس مفهوم ماتریس خلوت (Sparse Matrix) (ایجاد مشخصه (Attribute) با عنوان sparse برای متغیر)، با دستور sparse ، در متلب (MATLAB)
ماتریس خلوت (Sparse Matrix)، ماتریسی می باشد که اکثر عناصر آن برابر صفر باشند.
به عنوان مثال :
\[ A = \left[ {\matrix{ 0 & 1 & 0 & 0 \cr 0 & 0 & 2 & 0 \cr 3 & 0 & 0 & 0 \cr 0 & 0 & 0 & 4 \cr } } \right] \]مفهوم ماتریس خلوت (Sparse Matrix) می تواند در پردازش تصویر (Image Processing) و ... کاربرد داشته باشد، زیرا در پردازش تصویر (Image Processing) در مواقع زیادی، اطلاعات به صورت ماتریس خلوت (Sparse Matrix) هستند. بنابراین با روش های ذخیره سازی مناسب برای ماتریس های خلوت (Sparse Matrix)، می توانیم اطلاعات را در میزان حافظه (Memory) کمتری ذخیره نماییم.
بنابراین چنانچه در نرم افزار متلب (MATLAB)، یک ماتریس خلوت (Sparse Matrix) داشته باشیم، می توانیم از دستور sparse برای ذخیره آن بر اساس روش های مربوط به ذخیره سازی اطلاعات ماتریس خلوت (Sparse Matrix) استفاده نماییم تا حجم کمتری از حافظه (Memory) برای ذخیره سازی ماتریس مورد نظرمان، اشغال شود.
در این حالت، مقدار عناصر غیرصفر و همچنین موقعیت آنها در ماتریس، در حافظه (Memory) ذخیره می شود.
به مثال زیر توجه کنید :
3 خط اول کدها برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
نتیجه :
دقت کنید که وقتی از دستور sparse استفاده می کنیم و تبدیل انجام می شود، نوع (Type) متغیر (Variable) تغییر نمی کند، بلکه یک مشخصه (Attribute) با عنوان sparse به متغیر (Variable) افزوده می شود که نشان دهنده این است که اطلاعات بر اساس مفهوم ماتریس خلوت (Sparse Matrix) در حافظه ذخیره شده.
به مثال زیر توجه کنید :
دستور whos در متلب (MATLAB)، برای نمایش فهرست همه متغیرهای (Variable) تعریف شده در Workspace فعلی به کار می رود ( کلید شماره 4050 ).
نتیجه :
مشاهده می کنید که نوع (Type) هر دو متغیر A و S برابر نوع double اعلام شده و فقط برای متغیر S یک مشخصه (Attribute) با عنوان sparse ذکر شده است.
اگر به متغیرها در پنجره Workspace متلب (MATLAB) نگاه کنیم، مشاهده می کنیم که برای متغیر A عبارت double و برای متغیر S عبارت sparse double نوشته شده است :