gpt4 book ai didi

java - Java 中的稀疏矩阵乘法

转载 作者:行者123 更新时间:2023-11-29 09:14:55 24 4
gpt4 key购买 nike

你好,我知道有很多关于稀疏矩阵乘法的问题,但很多答案都说只使用库。我想在不使用库函数的情况下做到这一点。到目前为止,我已经完成了简单的部分,将我的矩阵转化为
元素数组
列数组
行数组。

我需要帮助的是逻辑部分。如果矩阵 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));
}

最佳答案

你说:

"I considered iterating over the elements in matrix A and checking if it's rowA== colB, >and if so if 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)){

代替?

关于java - Java 中的稀疏矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10080427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com