FULL函数在MATLAB中用于将稀疏矩阵转换为全矩阵。稀疏矩阵仅存储非零元素及其位置信息,全矩阵则包含所有元素,包括零。FULL函数通过读取稀疏矩阵的非零元素及其位置,生成一个包含所有元素(无论是否为零)的全矩阵形式,便于后续的数据处理和计算。
在matlab中,
meshgrid函数的
源代码调用了该函数。在MATLAB命令窗口中键入doc full或help full可以获得该函数的帮助信息。
把稀疏矩阵S转换成全矩阵。如果S是一个全矩阵,S将原封不动地被返回。如果A是一个全阵,
issparse(A)为0。假设x是一个m乘以n的矩阵,其中包含nz = nnz(x)个非零项。那么,如果以全矩阵方式存储x,即full(x),需要占用m*n个实数大小的内存空间;而
sparse以
稀疏矩阵形式存储,即sparse(x),需要内存空间来存储nz个实数和nz+n个整数。在大多数计算机上,一个实数占用的内存空间为一个整数的两倍。在这些电脑上,如果比值nnz/prod(size(x))不超过三分之一,以稀疏矩阵形式存储一个矩阵所占用的存储空间要远远少于以全矩阵形式存储。然而,针对稀疏矩阵的运算过程要(比针对全矩阵的运算)花费更长的时间。所以,在使用稀疏矩阵形式存储一个矩阵时,这个比值最好不超过三分之二。
由此可以看出,所谓
稀疏矩阵存储形式,全矩阵存储形式,只是matlab中存储稀疏矩阵的两种不同的方式。前一种存储方式,只存储系数矩阵中的非零项的值和它在矩阵中的行列下标,而以全矩阵形式存储,则所有0也单独存储。