Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 声明稀疏矩阵太慢_Matlab_Sparse Matrix_Finite Element Analysis - Fatal编程技术网

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秒 组装大约需

我目前正在使用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秒

组装
大约需要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
    。这使得稀疏声明速度提高了两倍。可能它们不使用压缩的行/列存储格式(您正在使用的格式)。谷歌一下,看看: