چرا حاصل جمع و ضرب و تفریق ماتریس اسپارس همواره ماتریس اسپارس نیست؟
سلام
کمی جستجو کردم این را فهمدیم که نتیجه ضرب ماتریس اسپارس همواره اسپارس نیست
چند سوال :
1-آیا این حرفم برای جمع و تفریق هم اینطوره ؟
2 – دلیل اینکه همواره اسپارس نیست را نفهمیدم لطفا با مثال برام توضیح بدید و بگید در هر سه حالت ضرب ئ جمع و تفریق حرفتون صادقه ؟
با تشکر
نقل قول: چرا حاصل جمع و ضرب و تفریق ماتریس اسپارس همواره ماتریس اسپارس نیست؟
سلام
ماتريس اسپارس به ماتريسی گفته ميشه که تعداد خانه های صفر و بی ارزش ان بيشتر از خانه های غير صفر آن باشد.
تا اينجا که خودتم ميدونستی...
حاصل جمع و تفريق و ضرب ماتريس اسپارس ممکن است اسپارس نباشد.
مثال
a يک ماتريس 2 در 2 هستش که عنصر اول ان 1 و بقيه 0 است.
b يک ماتريس 2 در 2 هست که عنصر دوم آن 1 و بقيه 0 است.
خوب ديگه ميبينی که حاصل جمع و تفريق اين 2 ماتريس اسپارس نيست.
برای ضرب هم به همين ترتيب ميشه مثال زد.
نقل قول: چرا حاصل جمع و ضرب و تفریق ماتریس اسپارس همواره ماتریس اسپارس نیست؟
نقل قول:
نوشته شده توسط
soorena
سلام
ماتريس اسپارس به ماتريسی گفته ميشه که تعداد خانه های صفر و بی ارزش ان بيشتر از خانه های غير صفر آن باشد.
تا اينجا که خودتم ميدونستی...
حاصل جمع و تفريق و ضرب ماتريس اسپارس ممکن است اسپارس نباشد.
مثال
a يک ماتريس 2 در 2 هستش که عنصر اول ان 1 و بقيه 0 است.
b يک ماتريس 2 در 2 هست که عنصر دوم آن 1 و بقيه 0 است.
خوب ديگه ميبينی که حاصل جمع و تفريق اين 2 ماتريس اسپارس نيست.
برای ضرب هم به همين ترتيب ميشه مثال زد.
میشه مثال واضح تری بزنی یا کد بزاری
نقل قول: چرا حاصل جمع و ضرب و تفریق ماتریس اسپارس همواره ماتریس اسپارس نیست؟
این واقعا تعریف شما از sparse ه؟
ماتریس sparse ماتریسیه که Cell هاش به شکل sparse نگهداری میشن.
مثل sparse array یا sparse index
نقل قول: چرا حاصل جمع و ضرب و تفریق ماتریس اسپارس همواره ماتریس اسپارس نیست؟
نقل قول:
نوشته شده توسط
FastCode
این واقعا تعریف شما از sparse ه؟
ماتریس sparse ماتریسیه که Cell هاش به شکل sparse نگهداری میشن.
مثل sparse array یا sparse index
خوب واسم توضیح بدید دیگه میخوام یاد بگیرم
با تشکر
نقل قول: چرا حاصل جمع و ضرب و تفریق ماتریس اسپارس همواره ماتریس اسپارس نیست؟
ماتریس sparse با توجه به محتویاتش شناسایی نمیشه.
ماتریس sparse ماتریسیه که سلولهاش sparse باشن.
ماتریسی رو به شکل sparse نگهداری میکنن که ارزشش رو داشته باشه.(منظور سوال از اینکه چه موقع نتیجه جمع اسپارسه همینه)
یعنی ارزش پردازش اضافه ای که صرف استخراج سلولها میشه بیشتر از مقدار حافظه ای باشه که صرفه جویی میشه.
ساختار ساده ماتریس اسپارس هم که سادست
struct SparseMatrix{
int Dimentions;
int* Lengths;
MatrixCell* Cells;
};
struct SparseMatrixCell{
int* Location;
void* Data;
};
اسن ساده ترین حالت ماتریس چند بعدیه.
دو بعدیش راحتتره
struct SparseMatrix{
int Length_1;
int Length_2;
MatrixCell* Cells;
};
struct SparseMatrixCell{
int Location_1;
int Location_2;
void* Data;
};
و یک مقدار پیشرفته تر:
struct SparseMatrix{
int Length_1;
int Length_2;
CellArray* Columns;
CellArray* Rows;
};
struct CellArray{
CellArray* Next;
CellArray* Previous;
int Index;
int Count;
SparseMatrixCell* Cells
};
struct SparseMatrixCell{
CellArray* Column;
CellArray* Row;
void* Data;
};