Matlab 声明稀疏矩阵太慢
我目前正在使用matlab进行有限元分析 我的代码是这样的Matlab 声明稀疏矩阵太慢,matlab,sparse-matrix,finite-element-analysis,Matlab,Sparse Matrix,Finite Element Analysis,我目前正在使用matlab进行有限元分析 我的代码是这样的 function [A,rhs] = Assemble() pre_process(); [IA,JA,A,rhs] = assemble(pre_processed_parameters); // mex-func // IA : row index // JA : col index // A : value A = sparse(IA,JA,A); 当A的大小为1000万x 1000万时 pre_过程不到1秒 组装大约需
function [A,rhs] = Assemble()
pre_process();
[IA,JA,A,rhs] = assemble(pre_processed_parameters); // mex-func
// IA : row index
// JA : col index
// A : value
A = sparse(IA,JA,A);
当A
的大小为1000万x 1000万
时
pre_过程
不到1秒
组装
大约需要5秒钟
sparse
大约需要820秒
最耗时的一行是单行sparse
有没有更快的收集方法
IA
、JA
和A
的属性是
(IA[k],JA[k])
具有所有k
的所有不同值A
,是下三角矩阵,具有块结构在稀疏矩阵中实际有多少个元素?i、 e.什么是numel(IA)?升级您的计算机?考虑到元素的数量似乎并不缓慢,并且没有更多的数据信息,很难回答优化问题。
nnz
是855582720。我在user.it.uu.se/~stefane/freeware.html中找到了fsparse
。这使得稀疏声明速度提高了两倍。可能它们不使用压缩的行/列存储格式(您正在使用的格式)。谷歌一下,看看:你的稀疏矩阵中有多少元素?i、 e.什么是numel(IA)?升级您的计算机?考虑到元素的数量似乎并不缓慢,并且没有更多的数据信息,很难回答优化问题。nnz
是855582720。我在user.it.uu.se/~stefane/freeware.html中找到了fsparse
。这使得稀疏声明速度提高了两倍。可能它们不使用压缩的行/列存储格式(您正在使用的格式)。谷歌一下,看看: