ماتریس خلوت

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

ماتریس خلوت[ویرایش]

ماتریس خلوت(تنک یا کم پشت) (به انگلیسی 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;
    }