matlab行操作快还是列操作快测速

简单测试一下matlab对于行列操作的测试速度

base_logical_rating 是 671行 163949列的矩阵 行列的差距非常大,,完成下面代码

tic
for id=1:671
   u_logical = base_logical_rating(id,:);   
   for n = id+1 : 671
       v_logical = base_logical_rating(n,:); 
       %得到共同打分的item的逻辑
       co_logical = u_logical & v_logical;
       fm = u_logical | v_logical;
       Y(id,n) = sum(co_logical)/(sum(fm)+1e-10);
   end
    id
end
toc

一共花费284秒:

如果进行转置矩阵,转置一下

base_logical_rating = base_logical_rating';
tic
for id=1:671
   u_logical = base_logical_rating(:,id);   
   for n = id+1 : 671
       v_logical = base_logical_rating(:,n); 
       %得到共同打分的item的逻辑
       co_logical = u_logical & v_logical;
       fm = u_logical | v_logical;
       Y(id,n) = sum(co_logical)/(sum(fm)+1e-10);
      
   end
    id
end
toc

完成代码运算大约需要101秒。

matlab还是尽量进行矩阵的列操作速度比较快

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值