作者sunev (Veritas)
看板MATLAB
标题Re: [讨论] 请问有没有比较快的写法
时间Fri May 29 09:53:47 2015
※ 引述《sean791121 (尚恩)》之铭言:
: 标题: [讨论] 请问有没有比较快的写法
: 时间: Thu May 28 23:31:39 2015
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.184.40.155
: ※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1432827101.A.BA5.html
: → sean791121: 对不起,忘记说明A和B都是sparse的 05/29 01:29
: → sunev: 另外我的经验是,sparse在这种大量不规则assign的情况下 05/29 09:30
: → sunev: 速度是慢了点,因为要一直改non-zero element很麻烦。 05/29 09:32
: → sunev: 所以官方才会建议用sparse一起解决。 05/29 09:33
: → celestialgod: 这里sparse matrix不会比较快 05/29 09:34
回文讲会清楚一点
如果一开始的矩阵是sparse
那这种 A(idx)=B(idx) ,这种大量不规则赋值形式的指令
会一直更改非零元素的位置。
而matlab中,sparse不是单纯储存非零元素的位置,
而是用一种类似递增的方式来存取非零元素。
所以在矩阵中间增删一个非零元素,
会影响後面所有的既存元素的位置的顺序,是很麻烦的。
所以官方才会建议用sparse指令一次解决。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.54.158
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1432864430.A.AEE.html