Java中的稀疏矩阵乘法
你好,我知道有很多关于稀疏矩阵乘法的问题,但是很多答案都说只使用库。我想在不使用库函数的情况下实现它。到目前为止,我已经完成了简单的部分,将矩阵转换为Java中的稀疏矩阵乘法,java,matrix,multiplication,sparse-matrix,Java,Matrix,Multiplication,Sparse Matrix,你好,我知道有很多关于稀疏矩阵乘法的问题,但是很多答案都说只使用库。我想在不使用库函数的情况下实现它。到目前为止,我已经完成了简单的部分,将矩阵转换为 元素数组 列数组 行数组 我需要的是逻辑部分的帮助。如果矩阵A是M*N,矩阵B是N*P,我该怎么做?我考虑迭代矩阵A中的元素,检查它是否为rowA==colB,如果是,如果为colA==rowB,如果为真,则相乘。我现在知道我的版本是错误的,但我想不出一个方法来纠正它 for(int i = 0; i < rows; i++) {
元素数组
列数组
行数组 我需要的是逻辑部分的帮助。如果矩阵A是M*N,矩阵B是N*P,我该怎么做?我考虑迭代矩阵A中的元素,检查它是否为rowA==colB,如果是,如果为colA==rowB,如果为真,则相乘。我现在知道我的版本是错误的,但我想不出一个方法来纠正它
for(int i = 0; i < rows; i++)
{
sum = 0;
for(int k = 0; k < cols; k++)
if (row_values.get(i) == col_valuesb.get(k))
if (col_values.get(i) == row_valuesb.get(k))
{
sum += (short) (elements.get(i)*elementsb.get(k));
}
elementsc.add(sum);
row_valuesc.add(row_values.get(i));
col_valuesc.add(col_values.get(k));
}
for(int i=0;i
你说过:
“我考虑对矩阵A中的元素进行迭代,并检查它是否为rowA==colB,>如果是,是否为colA==rowB”
既然根据定义,两个矩阵可以相乘,当且仅当colA==rowB,那么你们不应该修改吗
if (row_values.get(i) == col_valuesb.get(k)){
if (col_values.get(i) == row_valuesb.get(k))
{
就这么办吧
if (row_values.get(i) == col_valuesb.get(k)){
相反?你说:
“我考虑对矩阵A中的元素进行迭代,并检查它是否为rowA==colB,>如果是,是否为colA==rowB”
既然根据定义,两个矩阵可以相乘,当且仅当colA==rowB,那么你们不应该修改吗
if (row_values.get(i) == col_valuesb.get(k)){
if (col_values.get(i) == row_valuesb.get(k))
{
就这么办吧
if (row_values.get(i) == col_valuesb.get(k)){
相反