FULL在MATLAB中,该函式用于把一个稀疏矩阵(sparse matrix)转换成一个全矩阵(full matrix)(关于sparse matrix和full matrix请参阅sparse)。
基本介绍
- 中文名FULL
- 函式功能把一个稀疏矩阵转换成一个全矩阵
- 语法格式A = full(S)
- 软体MATLAB
函式简介
函式功能在MATLAB中,该函式用于把一个稀疏矩阵(sparse matrix)转换成一个全矩阵(full matrix)(关于sparse matrix和full matrix请参阅sparse)。在matlab中, meshgrid函式的原始码调用了该函式。在MATLAB命令视窗中键入doc full或help full可以获得该函式的帮助信息。
语法格式
A = full(S)
把稀疏矩阵S转换成全矩阵。如果S是一个全矩阵,S将原封不动地被返回。如果A是一个全阵,issparse(A)为0。假设x是一个m乘以n的矩阵,其中包含nz = nnz(x)个非零项。那幺,如果以全矩阵方式存储x,即full(x),需要占用mn个实数大小的记忆体空间;而sparse以稀疏矩阵形式存储,即sparse(x),需要记忆体空间来存储nz个实数和nz+n个整数。在大多数计算机上,一个实数占用的记忆体空间为一个整数的两倍。在这些电脑上,如果比值nnz/prod(size(x))不超过三分之一,以稀疏矩阵形式存储一个矩阵所占用的存储空间要远远少于以全矩阵形式存储。,针对稀疏矩阵的运算过程要(比针对全矩阵的运算)花费更长的时间。所以,在使用稀疏矩阵形式存储一个矩阵时,这个比值最好不超过三分之二。
相关函式meshgrid、issparse、sparse
程式示例
A = [0, 0, 0; 0, 1, 0; 1, 0, 0];
S = sparse(A)
A = full(S)
输出结果
>> A = [0, 0, 0; 0, 1, 0; 1, 0, 0];
S = sparse(A)
A = full(S)
S =
(3,1) 1
(2,2) 1
A =
0 0 0
0 1 0
1 0 0
由此可以看出,所谓稀疏矩阵存储形式,全矩阵存储形式,只是matlab中存储稀疏矩阵的两种不同的方式。前一种存储方式,只存储係数矩阵中的非零项的值和它在矩阵中的行列下标,而以全矩阵形式存储,则所有0也单独存储。