如何用c语言实现两个一维矩阵相乘?谢谢!要用2维数组。。。。
答案:1 悬赏:60 手机版
解决时间 2021-04-24 03:29
- 提问者网友:心牵心
- 2021-04-23 07:59
如何用c语言实现两个一维矩阵相乘?谢谢!要用2维数组。。。。
最佳答案
- 五星知识达人网友:北城痞子
- 2021-04-23 08:19
你用的VC吗?我随便给你个算法吧!!~SeqSparseMatrix& SeqSparseMatrix::operator*=(SeqSparseMatrix &mat) //当前矩阵与mat矩阵相加,归并算法
{
if (this->rows!=mat.rows && this->columns!=mat.columns)
throw "两个矩阵阶数不同,不能相乘";
int i=0, j=0;
while (i
{ //将mat的各三元组依次插入到当前矩阵三元组顺序表
Element item = this->list.get(i);
Element elem = mat.list.get(j);
if (elem.row==item.row && elem.column==item.column)
{
item.value *= elem.value;
list.set(i, item);
i++;
j++;
}
else if (item.row
i++;
else
{
this->list.insert(i, elem); //将item插入为list的第i个元素
i++;
j++;
}
}
while (j
this->list.insert(i++, mat.list.get(j++));
return *this;
}
{
if (this->rows!=mat.rows && this->columns!=mat.columns)
throw "两个矩阵阶数不同,不能相乘";
int i=0, j=0;
while (i
Element item = this->list.get(i);
Element elem = mat.list.get(j);
if (elem.row==item.row && elem.column==item.column)
{
item.value *= elem.value;
list.set(i, item);
i++;
j++;
}
else if (item.row
else
{
this->list.insert(i, elem); //将item插入为list的第i个元素
i++;
j++;
}
}
while (j
return *this;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯