在matlab中 稀疏矩阵赋值 提速,matlab – 加速巨大稀疏矩阵的条件填充

我认为这将是稀疏矩阵的增量更新,而不是基于循环的条件,这将减慢速度.

通过类似A(i,j)= 1的方法向稀疏矩阵添加新条目时,通常需要重新打包整个矩阵数据结构.这是一项昂贵的操作.如果您感兴趣,MATLAB将在内部使用CCS数据结构(压缩列存储),这在数据结构部分here中有所描述.请注意语句:

This scheme is not effcient for manipulating matrices one element at a

time

通常,将矩阵中的非零条目作为一组三元组累积然后对稀疏进行单次调用要好得多(更快).例如(警告 – 脑编译代码!!):

% Inputs:

% N

% prev_array and next_array

% n_labels_prev and n_labels_next

% mapping

% allocate space for matrix entries as a set of "triplets"

ii = zeros(N,1);

jj = zeros(N,1);

xx = zeros(N,1);

nn = 0;

for next_label_ix = 1:n_labels_next

prev_label = mapping(next_label_ix);

if prev_label <= n_labels_prev

prev_global_label = prev_array(prev_label);

next_global_label = next_array(next_label_ix);

% reallocate triplets on demand

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值