Ich implementiere eine Maxmin-Funktion, es funktioniert wie Matrix-Multiplikation, aber anstelle der Summierung von Produkten erhält es maximal von min zwischen zwei Zahlen punktweise. Ein Beispiel für eine naive Implementierung istSparse Matrix Multiplikation wie (Maxmin) in C++ mit Oktavbibliotheken
double mx = 0;
double mn = 0;
for (i = 0; i < rowsC;i++)
{
for(j = 0; j < colsC;j++)
{
mx = 0;
for(k = 0; k < colsA; k++)
{
if (a(i, k) < b(k, j))
mn = a(i,k);
else
mn = b(k,j);
if (mn > mx)
mx = mn;
}
c(i, j) = mx;
}
}
ich es als eine Oktave oct-Datei bin Codierung so i oct.h Datenstruktur verwenden. Das Problem ist, dass ich eine spärliche Version implementieren möchten, aber in der Regel müssen Sie einen Verweis auf das nächste nicht Nullelement in einer Zeile oder in einer Spalte wie in diesem Beispiel (4.3 Algorithmus e): http://www.eecs.harvard.edu/~ellard/Q-97/HTML/root/node20.html
Es row_p tun -> next gab das nächste von Null verschiedene Element der Zeile (das gleiche für die Spalte). Gibt es eine Möglichkeit, dasselbe mit der Octave SparseMatrix-Klasse zu tun? Oder gibt es eine andere Möglichkeit, die Multiplikation der Sparse-Matrix zu implementieren, die ich für meine Maxmin-Funktion übernehmen kann?