稀疏矩阵
稀疏矩阵采用完全存储的方式,稀疏存储矩阵是指稀疏矩阵的一种只存储非零元素和位置的存储方式
1.矩阵的存储方式
完全存储方式:将矩阵的全部元素按列存储。
稀疏存储方式:只存储矩阵的非零元素的值及其位置,即行号和列号。
注意,采用稀疏存储方式时,矩阵元素的存储顺序并没有改变,也是按列的顺序进行存储。
2.稀疏存储方式的产生
(1)完全存储方式与稀疏存储方式之间的转化
A=sparse(S):将矩阵S转化为稀疏存储方式的矩阵A。
S=full(A):将矩阵A转化为完全存储方式的矩阵S。
(2)直接建立稀疏存储矩阵
sparse函数的其他调用格式:
sparse(m,n):生成一个m×n的所有元素都是零的稀疏矩阵。
sparse(u,v,S):其中u、v、S是3个等长的向量。S是要建立的稀疏存储矩阵的非零元素,u(i)、v(i)分别是S(i)的行和列下标。
使用spconvert函数直接建立稀疏存储矩阵,其调用格式为:
B=spconvert(A)
其中,A为一个m×3或m×4的矩阵,其每行表示一个非零元素,m是非零元素的个数。
A(i,1)表示第i个非零元素所在的行。
A(i,2)表示 第i个非零元素所在的列。
A(i,3)表示第i个非零元素值的实部。
A(i,4)表示第i个非零元素值的虚部。
若矩阵的全部元素都是实数,则无须第4列。
(3)带状稀疏矩阵的稀疏存储
稀疏矩阵有两种基本类型:无规则结构的稀疏矩阵与有规则结构的稀疏矩阵。
带状稀疏矩阵就是一种十分典型的具有规则结构的稀疏矩阵,它是指所有非零元素集中在对角线上的矩阵。
[B,d]=spdiags(A):从带状稀疏矩阵A中提取全部非零对角线元素赋给矩阵B及其这些非零对角线的位置向量d。
A=spdiags(B,d,m,n):产生带状稀疏矩阵的稀疏存储矩阵A,其中m、n为原带状稀疏矩阵的行数与列数,矩阵B的第i列即为原带状稀疏矩阵的第i条非零对角线,向量d为原带状稀疏矩阵所有非零对角线的位置。
(4)单位矩阵的稀疏存储
speye(m,n)返回一个m×n的稀疏存储单位矩阵。
函数文件的定义与调用
1. 函数文件的基本结构
例
function [s,p]=fcircle(r)
s=pi*r*r;
p=2*pi*r;
2. 函数调用
调用格式:
[输出实参表]=函数名(输入实参表)
3、匿名函数
函数参数与变量的作用域
1.函数参数的可调性
nargin 输入实参的个数
nargout 输出实参的个数
2、全局变量定义格式:
global 变量名