﻿功能:稀疏矩阵乘法
 
格式:
SparseMul(A,b)
A:列数为3的矩阵变量(稀疏矩阵存储格式,第1列为元素值,第2列为行索引值,第3列为列索引值,元素的存储顺序没有要求)
b:一个列数为1的矩阵变量,注意,b的元素个数不能小于A稀疏矩阵的列数
 
说明:考虑到一些验证,就写了本函数.因为怕计算产生很大的矩阵,就只考虑矩阵相乘产生一列数据的情况.程序执行完毕返回一个m*1的矩阵变量,其中m表示稀疏矩阵A的行数
 
原理:c=A*b
 
例子:
 
a =
[ 1.00000000000000    0.00000000000000    0.00000000000000    0.00000000000000
  2.00000000000000    3.00000000000000    0.00000000000000    0.00000000000000
  5.60000000000000    0.00000000000000    0.00000000000000    7.00000000000000
  1.00000000000000    0.00000000000000    0.00000000000000    3.00000000000000 ]
b =
[ 4.00000000000000
  5.00000000000000
  6.00000000000000
  7.00000000000000 ]
//假如系统之前存在上面的a、b矩阵
asp={SparseCreate<矩阵运算\SparseCreate>}(a)//先产生一个稀疏矩阵存储格式的矩阵以备计算
asp =
[ 1.00000000000000    1.00000000000000    1.00000000000000
  2.00000000000000    2.00000000000000    1.00000000000000
  3.00000000000000    2.00000000000000    2.00000000000000
  5.60000000000000    3.00000000000000    1.00000000000000
  7.00000000000000    3.00000000000000    4.00000000000000
  1.00000000000000    4.00000000000000    1.00000000000000
  3.00000000000000    4.00000000000000    4.00000000000000 ]
ab=SparseMul(asp,b)//计算a*b的值
ab =
[ 4.00000000000000
  23.0000000000000
  71.4000000000000
  25.0000000000000 ]
{mul<矩阵运算\mul>}(a,b)//可以验证,结果和上面一样
ans =
[ 4.00000000000000
  23.0000000000000
  71.4000000000000
  25.0000000000000 ]