【发布时间】:2015-09-07 16:42:12
【问题描述】:
我在 MATLAB 中有一个稀疏的 5018x5018 矩阵,它有大约 100k 个值设置为 1(即大约 99.6% 为空)。
我正在尝试将大约 5% 的零翻转为一(即大约 125 万个条目)。我在要翻转的矩阵中有 x 和 y 索引。
这是我所做的:
sizeMat=size(network);
idxToReplace=sub2ind(sizeMat,x_idx, y_idx);
network(idxToReplace) = 1;
这非常慢,尤其是最后一行。有什么方法可以让这个操作运行得明显更快,最好不使用 mex 文件?
【问题讨论】:
-
你试过
idxToReplace = x_idx + sizeMat(1)*(y_idx-1)吗?它与sub2ind相同,但没有开销。它可能会更快
标签: matlab matrix sparse-matrix