ماتریس خلوت
[ویرایش] ماتریس خلوت
ماتریس خلوت(تنک یا کم پشت) (به انگلیسی Sparse Matrix)ماتریسی است که برای صرفه جویی در حافظه به کار میرود . هنگامی که ابعاد ماتریس به حدی بزرگ شود که در حافظه نگنجد و نیز تعداد زیادی از درایه های موجود صفر باشد .[۱][۲] این ماتریس در مسایل مربوط به پردازش تصویر و نمایش تصویر مورد استفاده قرار میگیرند .
[ویرایش] ویژگیها
در ماتریس معمولی که نوعی ساختمان داده میباشد، دارای دو مقدار سطر و ستون میباشد که به واقع فضای مورد نیاز برای ذخیره سازی آن را نیز بیان میدارد (سطر*ستون). هر درایه از طریق یک شناسه چون a و دو زیرنوشت چون(iوj) و در نهایت با استفاده از شکل i,j) نمایش داده میشود .هر درایه میتواند مقداری داشته باشد . در ماتریس خلوت؛ بدلیل نوع استفاده؛ دارای تعدادزیادی مقدار صفر است . مثلا : در پردازش تصویر یک تصویر دارای تعداد زیادی صفر است . برای جلوگیری از اتلاف در زمان و حافظه از این ماتریس استفاده میگردد . سادهترین حالت پیاده سازی به صورت یک یک آرایه و لیست پیوندی است که هر کدام از عناصر دارای یک سری از ویژگیها به صورت کلی <matrix<r,c,t است که r نمایانگر شمارهٔ سطر و c نمایانگر ستون و t نمایانگر مفدار ذخیره شده در سطر و ستون ماتریس خلوت یاد شده است . کد زیر به این ماتریس را در حالت آرایه نشان میدهد (برای مطالعهٔ بیشتر *[۳]
class MatrixTerm<T>{ protected int row,col; protected int value; public MatrixTerm(int r,int c,int t){ value=t; col=c; row=r; } } public class SparsMatirx<T> { private int row,col,term; private int count=0; private MatrixTerm<T> []SpMatrix; private final int default_size=20; /** Creates a new instance of SparsMatirx */ @SuppressWarnings("unchecked") public SparsMatirx(int r,int c,int t) { count=0; SpMatrix=(MatrixTerm<T>[])new Object[default_size]; SpMatrix[count].col=c; SpMatrix[count].row=r; SpMatrix[count].value=t; } public SparsMatirx(){ this(10,10,10); count=0; }