matlab中的double(简单)

类型为啥是sparsedouble是什么意思?有啥区别double... 类型为啥是sparse double是什么意思?有啥区别double 展开
 我来答
tianxiawulang
推荐于2016-09-28 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2560万
展开全部

sparse double是稀疏存储方式的双精度浮点数(矩阵)。

 

所谓稀疏矩阵,是指大多数元素为0的矩阵。这种矩阵如果采用常规的存储方式,会造成大量空间的浪费,而计算时也会因大量的0元素加减这样的无意义运算而造成效率很低。MATLAB中提供了稀疏存储的方式,就是sparse。

 

创建稀疏矩阵通常直接使用sparse函数,例如

S = sparse(1:n,1:n,1);

会创建一个n×n的单位阵,而

B = sparse(10000,10000,pi)

会创建一个10000x10000的矩阵,该矩阵仅右下角元素的值为pi,其它元素全为0。

 

矩阵的稀疏存储和常规存储方式可以通过sparse函数和full函数相互转换,例如,前面创建n阶单位阵的例子也可以通过这样的做法来实现:

S = sparse(eye(n,n));

不过,后面这种方式需要创建一个临时的常规存储的单位阵,可能会造成大量空间消耗甚至导致内存不足。对于前面创建的稀疏矩阵B,不要尝试使用

full(B)

将其转换为常规存储方式,因为那样需要800M的内存。

 

关于稀疏矩阵应用的实例,我前不久回答的一个问题就用到了,有兴趣可以参考:

http://zhidao.baidu.com/question/572466904.html?oldq=1

 

关于稀疏矩阵的一般概念,可参考

http://en.wikipedia.org/wiki/Sparse_matrix

 

关于MATLAB中稀疏矩阵更多的信息,可参考文档中相关章节(用户手册中有专门的Sparse Matrices内容)。

希望对楼主有帮助,有问题欢迎追问。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式