2016-11-22 5 views
-2

I wurde für die Zugabe von Sparse Matrix Lesecode und kamSparse Matrix zusätzlich Bedingung

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

über diesen Zustand kann nicht verstehen, warum die Anzahl der Nicht-Null-Zeilen und Spalten gleich sein sollte? Tut mir leid, ich bin ein Neuling.

Der gesamte Code ist here

+0

aus der Erklärung in Ihrem Link, um die Anzahl der Zeilen und Spalten sh sollte identisch sein, um eine Addition durchzuführen. –

+0

Warum sollte es gleich sein, können wir hinzufügen, auch wenn es nicht war. – Sniper

+0

Fragen Sie den Autor dieses Codes. Ich bin nicht sicher über _ "wir können hinzufügen, auch wenn es nicht war" _. –

Antwort

2

die Anzahl Zeilen in der ersten Matrix in Matrix Zusätzlich müssen die Anzahl der Reihen in der zweiten Matrix entsprechen.

Das gleiche gilt für die Spalten.

Die Anzahl der Spalten der ersten Matrix muss der Anzahl der Spalten der zweiten entsprechen.

Das ist der Code, den Sie gepostet haben. Hier ist ein Zitat aus dem verknüpften Code:

In dieser Matrix Sparse Matrix gespeichert wird wie folgt

s [0] [0] = Gesamt Reihen in Sparse Matrix

s [0] [1] = Gesamt Spalten in sparse Matrix

s [0] [2] = Anzahl der nicht-Null-Wert

+0

Es ist keine Matrixaddition, seine spärliche Matrixaddition. Die Anzahl der Zeilen steht für die Anzahl der Zeilen ungleich Null und die gleiche für die Spalte – Sniper

+0

. Ich bin mir ziemlich sicher, dass im verknüpften Code 'sp [0] [0]' und 'sp [0] [1]' die Dimensionen des tatsächlichen halten Matrix. –

+0

Es mag spärlich sein, aber Sie können immer noch keine Matrizen mit unterschiedlichen Dimensionen hinzufügen. Ich stimme zu, dass es nicht hilfreich ist, nur die Anzahl der Zeilen zu kennen, die nicht Null sind, weil Sie nicht wissen, wie viele Zeilen mit dem Wert Null noch vorhanden sind. Um festzustellen, ob die Matrizen hinzugefügt werden können, benötigen Sie die genauen Abmessungen. Nur die "Nicht-Null" -Dimensionen sind nutzlos. – ComradeJoecool