请问MATLAB中的sparse函数怎样使用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问MATLAB中的sparse函数怎样使用?相关的知识,希望对你有一定的参考价值。
下面是 help sparse 的帮助文件, 谁要是用的比较熟悉,给介绍一下吧.
SPARSE Create sparse matrix.
S = SPARSE(X) converts a sparse or full matrix to sparse form by squeezing out any zero elements.
S = SPARSE(i,j,s,m,n,nzmax) uses the rows of [i,j,s] to generate an m-by-n sparse matrix with space allocated for nzmax nonzeros.
The two integer index vectors, i and j, and the real or complex entries vector, s, all have the same length, nnz, which is the number of nonzeros in the resulting sparse matrix S .
Any elements of s which have duplicate values of i and j are added together.
There are several simplifications of this six argument call.
S = SPARSE(i,j,s,m,n) uses nzmax = length(s).
S = SPARSE(i,j,s) uses m = max(i) and n = max(j).
S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This
generates the ultimate sparse matrix, an m-by-n all zero matrix.
The argument s and one of the arguments i or j may be scalars,in which case they are expanded so that the first three arguments all have the same length.
For example, this dissects and then reassembles a sparse matrix:
[i,j,s] = find(S);
[m,n] = size(S);
S = sparse(i,j,s,m,n);
So does this, if the last row and column have nonzero entries:
[i,j,s] = find(S);
S = sparse(i,j,s);
All of MATLAB's built-in arithmetic, logical and indexing operations can be applied to sparse matrices, or to mixtures of sparse and full matrices. Operations on sparse matrices return sparse matrices and operations on full matrices return full matrices. In most cases,operations on mixtures of sparse and full matrices return full matrices. The exceptions include situations where the result of a mixed operation is structurally sparse, eg. A .* S is at least as sparse as S . Some operations, such as S >= 0, generate "Big Sparse", or "BS", matrices -- matrices with sparse storage organization but few zero elements.
See also SPALLOC, SPONES, SPEYE, SPCONVERT, FULL, FIND, SPARFUN.
spdiags功能:返回带状稀疏矩阵Aspdiags的格式为:
A=spdiags(B,d,m,n)参数m,n为原带状矩阵的行数与列数。B为r×p阶矩阵,这里r=min(m,n),p为原带状矩阵所有非零对角线的条数,矩阵B的第i列即为原带状矩阵的第i条非零对角线, d为长度为p的向量。 参考技术A y=sparse(x) %将一个矩阵转为sparse矩阵存储。
[i,j,z]=find(x) %对一个sparse矩阵x,查找其中非零元素得位置(行标和列标)和值。
x = sparse(i,j,x);指定非零元素得行标,列标和值,创建sparse矩阵。
matlab中workspace中数据怎么保存
数据导出1. 保存整个工作区
选择File菜单中的Save Workspace As…命令,或者单击工作区浏览器工具栏中的Save,可以将工作区中的变量保存为MAT文件。
2. 保存工作区中的变量
在工作区浏览器中,右击需要保存的变量名,选择Save As…,将该变量保存为MAT文件。
3.利用save命令保存
save:将工作区中的所有变量保存在当前工作区中的文件中,文件名为 matlab.mat,MAT文件可以通过load函数再次导入工作区,MAT函数可以被不同的机器导入,甚至可以通过其他的程序调用。
save('filename'):将工作区中的所有变量保存为文件,文件名由filename指定。如果filename中包含路径,则将文件保存在相应目录下,否则默认路径为当前路径。
save('filename', 'var1', 'var2', ...):保存指定的变量在 filename 指定的文件中。
save('filename', '-struct', 's'):保存结构体s中全部域作为单独的变量。
save('filename', '-struct', 's', 'f1', 'f2', ...):保存结构体s中的指定变量。
save('-regexp', expr1, expr2, ...):通过正则表达式指定待保存的变量需满足的条件。
save('..., 'format'),指定保存文件的格式,格式可以为MAT文件、ASCII文件等。
数据导入
MATLAB中导入数据通常由函数load实现,
load:如果matlab.mat文件存在,导入matlab.mat中的所有变量,如果不存在,则返回error。
load filename:将filename中的全部变量导入到工作区中。
load filename X Y Z ...:将filename中的变量X、Y、Z等导入到工作区中,如果是MAT文件,在指定变量时可以使用通配符“*”。
load filename -regexp expr1 expr2 ...:通过正则表达式指定需要导入的变量。
load -ascii filename:无论输入文件名是否包含有扩展名,将其以ASCII格式导入;如果指定的文件不是数字文本,则返回error。
load -mat filename:无论输入文件名是否包含有扩展名,将其以mat格式导入;如果指定的文件不是MAT文件,则返回error。
将文件matlab.mat中的变量导入到工作区中。
首先应用命令whos –file查看该文件中的内容:
>> whos -file matlab.mat
Name Size Bytes Class
A 2x3 48 double array
I_q 415x552x3 687240 uint8 array
ans 1x3 24 double array
num_of_cluster 1x1 8 double array
Grand total is 687250 elements using 687320 bytes
将该文件中的变量导入到工作区中:
>> load matlab.mat
该命令执行后,可以在工作区浏览器中看见这些变量。
文件的打开
MATLAB中可以使用open命令打开各种格式的文件,MATLAB自动根据文件的扩展名选择相应的编辑器。
需要注意的是open('filename.mat')和load('filename.mat')的不同,前者将filename.mat以结构体的方式打开在工作区中,后者将文件中的变量导入到工作区中,如果需要访问其中的内容,需要以不同的格式进行。 参考技术A 选择File菜单中的Save Workspace As…命令,或者单击工作区浏览器工具栏中的Save,可以将工作区中的变量保存为MAT文件。
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 参考技术B 双击鼠标点你要的数据,file-save 参考技术C 双击鼠标点你要的数据,file-save本回答被提问者采纳
以上是关于请问MATLAB中的sparse函数怎样使用?的主要内容,如果未能解决你的问题,请参考以下文章