0
我正在實現一個maxmin函數,它的工作原理與矩陣乘法相似,但它不是求和產品,而是逐點地在兩個數字之間獲取最大值。天真實施的一個例子是在C++中使用Octave庫稀疏矩陣乘法(maxmin)
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;
}
}
我把它編碼爲八度oct-file,所以我必須使用oct.h數據結構。問題是,我想實現一個稀疏的版本,但通常你需要到下一個非零元素的引用行或像在這個例子中一列(見4.3算法): http://www.eecs.harvard.edu/~ellard/Q-97/HTML/root/node20.html
有做row_p - >下一行給出了該行的下一個非零元素(對於列是相同的)。有沒有辦法對八度SparseMatrix類做同樣的事情?還是有另一種實現我可以採用我的maxmin函數的稀疏矩陣乘法的方法?