找回密码
 注册
Simdroid-非首页
查看: 195|回复: 3

大型稀疏方阵对角元素如何赋值

[复制链接]
发表于 2011-1-7 19:16:31 | 显示全部楼层 |阅读模式 来自 LAN
A=sparse(10000,10000)vector=[4 6 10 12 13 15];
for i=1:length(vector)
A(vector(i),vector(i))=1;
end

这段代码速度很慢,怎样把这段代码简化一下,去掉循环呢
发表于 2011-1-7 22:58:51 | 显示全部楼层 来自 北京
Simdroid开发平台
S = sparse(vector,vector,1,10000,10000);

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-1-12 01:44:23 | 显示全部楼层 来自 LAN
2# rocwoods
问题是A在以前被赋值过一次,里面有值,只是在(vector,vector)处改为1,
应该怎么弄呢
回复 不支持

使用道具 举报

发表于 2011-1-12 09:34:49 | 显示全部楼层 来自 浙江杭州
2# rocwoods
问题是A在以前被赋值过一次,里面有值,只是在(vector,vector)处改为1,
应该怎么弄呢
newdiver 发表于 2011-1-12 01:44

1、用Fortran或者C/C++写好代码,再用mex;
2、可以尝试用parfor开启并行,不过是否支持稀疏矩阵没有验证过,且属于拿内存换效率的办法,内存小的话,请勿轻易尝试

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2026-1-2 18:20 , Processed in 0.032771 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表