当前位置:首页 » 存储配置 » matlab稀疏存储

matlab稀疏存储

发布时间: 2023-05-24 13:02:08

㈠ 对稀疏矩阵进行压缩存储的目的是什么

对稀疏矩阵进行压缩存储目的是节省存储空间。

存储矩阵的一般方法是采用二维数组,其优点是可以随机地访问每一个元素,因而能够较容易地实现矩阵的各种运算。

但对于稀疏矩阵而言,若用二维数组来表示,会重复存储了很多个0了,浪费空间,而且要花费时间来进行零元素的无效计算。所以必须考虑对稀疏矩阵进行压缩存储。



(1)matlab稀疏存储扩展阅读

优点

稀疏矩阵的计算速度更快,因为MATLAB只对非零元素进行操作,这是稀疏矩阵的一个突出的优点。假设矩阵A,B中的矩阵一样,计算2*A需要一百万次的浮点运算,而计算2*B只需要2000次浮点运算。

因为MATLAB不能自动创建稀疏矩阵,所以要用特殊的命令来得到稀疏矩阵。算术和逻辑运算都适用于稀疏矩阵。对于一个用二维数组存储的稀疏矩阵Amn,如果假设存储每个数组元素需要L个字节,那么存储整个矩阵需要m*n*L个字节。

㈡ matlab稀疏存储一定会提高速度吗

您好,很高兴回答您的问题。稀毕瞎疏储存不一定会提高速度,稀疏储存只储存所有非零元素的值和位置,会提高元素储存的效率,但是也要注意外在条旅数判件,用在不恰当的时候可能会适得拆改其反,降低储存的速度。

㈢ MATLAB 生成稀疏矩阵

稀疏矩阵是指很少非零元素的矩阵,这瞎雹悔样的矩阵就成为稀疏矩阵,这种特性提供了矩阵存储空间和计算时间的优点。 我们可以使用MATLAB函数sparse把它转换成稀疏矩阵,该函数语法为: S=sparse(A)函数sparse()的更常用的用法是用来产生稀疏矩阵,具体语法如下: S=vsparse(r,c,s,m,n)其中r和c是我们希望产生的稀疏矩阵的矩阵中非零元素的行和列索引向量。参数s是一个向量,它包含索引对肆轿(r,c)对应的数值,m和n是结果矩阵的行维数和列维数。 如果要获得完成的矩阵,可以使用full()函数,函数语法磨正: A=full(s) 针对你的问题,要产生上三角稀疏矩阵,一个可能的思路是先产生上三角正常矩阵,在将其稀疏化 A = triu(ones(4,4))上述函数用来产生一个上三角矩阵,所以 S=sparse(A)将其转化为稀疏矩阵

㈣ 谁给详细解释下 matlab里的稀疏带状矩阵创建命令 SM=spdiags(B,d,m,n)

产生稀疏存储矩阵
sparse可以讲完全存储方式转换为稀疏存储方式,那么,当使用稀疏矩阵时,要先产生完全存储方式的矩阵,然后再转换,这显然是不可取的,MATLAB有自己产生稀疏矩阵的函数spconvert:
B=spconvert(A);A为一个m*3或m*4的矩阵,A的每一列的意义分别为:
(i,1)第i非零元素所在行
(i,2)第i非零元素所在列
(i,3)第i非零元素的实部
(i,4)第i非零元素的虚部

3.带状(对角)稀疏矩阵
函数 spdiags
格式 [B,d] = spdiags(A) %从矩阵A中提取所有非零对角元素,这些元素保存在矩阵B中,向量d表示非零元素的对角线位置。
B = spdiags(A,d) %从空岩槐A中提取由d指定的对角线元素,并存放在B中。
A = spdiags(B,d,A) %用B中的列替换A中由d指定的对角线元素,输出稀疏枣禅矩阵。
A = spdiags(B,d,m,n) %产斗友生一个m×n稀疏矩阵A,其元素是B中的列元素放
在由d指定的对角线位置上。
例1
>>A = [11 0 13 0
0 22 0 24
0 0 33 0
41 0 0 44
0 52 0 0
0 0 63 0
0 0 0 74];
>>[B,d] = spdiags(A)
B =
41 11 0
52 22 0
63 33 13
74 44 24
d =
-3 %表示B的第1列元素在A中主对角线下方第3条对角线上
0 %表示B的第2列在A的主对角线上
2 %表示B的第3列在A的主对角线上方第2条对角线上
例1
>> B=[1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16];
>> d=[-2 0 1 3];
>> A=spdiags(B,d,4,4);
>> full(A)
ans =
2 7 0 16
0 6 11 0
1 0 10 15
0 5 0 14

㈤ 稀疏矩阵的存储空间

一个稀疏矩阵中有许多元素等于零,这便于矩阵的计算和保存.如果Matlab把一个矩阵当作稀疏矩阵,那么只需在m×3的矩阵中存储m个非零项.第1列是行下标,第2列是列下标,第3列是非零元素值,不必保存零元素.如果存储一个浮点数要8个字节,存储每个下标要4个字节,那么整个矩阵在内存中存储需要1 6×m个字节.
A = e y e ( 1 0 0 0 ) ;
得到一个1 0 0 0×1 0 0 0的单位矩阵,存储它需要8 MB空间.如果使用命令:
B = s p e y e ( 1 0 0 0 ) ;
用一个1 0 0 0×3的矩阵来代表,每行包含有一个行下标,列下标和元素本身.只需1 6 K B的空间就可以存储1 0 0 0×1 0 0 0的单位矩阵,它只需要满单位矩阵的0 . 2 %存储空间.对于许多的广义矩阵也可这样来作.

㈥ MATLAB如何导入大型稀疏矩阵

方法一:把你的知扮弊m文件和xls文件放在同一目录下,路径不要有中文。如
数据文件为dat.xls。m文件如下:
data=xlsread('缺让dat.xls');
方法二:数据文件与m文件不在同一目录,要写明数据文件路搭族径;
如:data=xlsread('c:\dat.xls')

热点内容
mysql数据库基本语句 发布:2025-02-07 16:41:48 浏览:249
医院门禁密码多少 发布:2025-02-07 16:41:43 浏览:527
服务器遭美国ip攻击签名 发布:2025-02-07 16:22:48 浏览:546
如何配置二良腌料 发布:2025-02-07 16:11:54 浏览:735
数据库课程设计学生管理系统 发布:2025-02-07 16:11:50 浏览:764
美国文化密码是什么 发布:2025-02-07 16:07:14 浏览:261
安卓手机下雪特效怎么p 发布:2025-02-07 15:49:30 浏览:319
轮胎存储铭牌 发布:2025-02-07 15:43:38 浏览:74
防盗锁编程 发布:2025-02-07 15:31:33 浏览:860
安卓如何快速选择图片 发布:2025-02-07 15:30:43 浏览:468