matlab稀疏矩阵创建及实例

 

一般有两个命令可以用来创建稀疏矩阵:

1. sparse(较常用)  

2. spdiags(主要用于非零元素都是对角线元素的情况)

sparse。使用格式如下

A = sparse( i,j,,s,m,n,nzmax )

其实matlab函数sparse的文档中说的比较明白:

S = sparse(i,j,s,m,n,nzmax) uses vectors i, j, and s to generate an m-by-n sparse matrix such that S(i(k),j(k)) = s(k), with space allocated for nzmax nonzeros. Vectors i, j, and s are all the same length.

主要意思:i, j, s都是向量,i,j分别为非零元素的行下标和列下标构成的列向量,i(k)和j(k)作为两个下标标记非零元素在矩阵中的位置,这个位置上的元素值为s(k).

比如要构造的系数矩阵A中A(3,5)=7,而7是A中第10个非零元素(第几个元素是按列来数的),则i(10)=3,j(10)=5,s(10)=7

构造举例:

i=[1 3 1 2 1 4];j=[1 1 2 2 3 4];s = [1 2 3 4 5 6];

>> sparse(i,j,s)

ans =

 

   (1,1)        1

   (3,1)        2

   (1,2)        3

   (2,2)        4

   (1,3)        5

   (4,4)        6

 

m,n表明A 是 m×n 阶矩阵(可省略);nzmax 用于指定A 中非零元素所用存储空间大小(可省略)。最简单的使用方式是只输入非零元的数据以及各非零元的行指标和列指标。例如,创建一个只有三个非零元的4×5阶矩阵可用下面命令

i=[1  2  4];j=[

你可能感兴趣的:(图像处理,matlab)