2016-11-22 8 views
-2

я читал код для добавления разреженной матрицы и наткнулся на этом условииразреженного состояние матрицы дополнения

if(sp1[0][0] != sp2[0][0] || sp1[0][1] != sp2[0][1]) 
{ 
    printf("Invalid matrix size "); 
    exit(0); 
} 

не мог понять, почему число ненулевых строк и столбцы должно быть одинаковым? Извините, что я новичок.

Весь код here

+0

из объяснения в вашей ссылке число строк и столбцов ш ould быть идентичным для выполнения добавления. –

+0

Почему это так, мы можем добавить, даже если это не так. – Sniper

+0

Задать вопрос автору этого кода. Я не уверен в том, что «мы можем добавить, даже если это не так». –

ответ

2

В матричном того, что число строк в первой матрице должны равняться числу строк во второй матрице.

То же самое касается столбцов.

Число столбцов первой матрицы должно равняться числу столбцов второй.

Это то, что вы указали в этом коде. Вот цитата из связанного кода:

В этой матрице разреженная матрица сохраняется следующим образом

с [0] [0] = Всего строк в разреженной матрицей

с [0] [1] = Общее количество столбцов в разреженной матрицей

с [0] [2] = общее количество ненулевых значений

+0

Его не сложение матрицы, его разреженное матричное дополнение. Число строк обозначает количество ненулевых строк и такое же для столбца – Sniper

+0

. Я уверен, что в связанном коде 'sp [0] [0]' и 'sp [0] [1]' удерживают размеры фактического матрица. –

+0

Это может быть редко, но вы все равно не можете добавлять матрицы разных размеров. Я согласен с тем, что только знание числа ненулевых строк не помогает, потому что вы не знаете, сколько еще строк с нулевым значением. Чтобы определить, могут ли быть добавлены матрицы, нужны точные размеры. Только наличие «ненулевых» измерений бесполезно. – ComradeJoecool

 Смежные вопросы

  • Нет связанных вопросов^_^