【发布时间】:2016-02-19 00:10:27
【问题描述】:
这里是 MatLab 的新手(R2015a,Mac OS 10.10.5),希望找到解决这个索引问题的方法。
我想根据一个行索引向量和一个列索引来更改大型二维矩阵的值。举一个非常简单的例子,如果我有一个 3 x 2 的零矩阵:
A = zeros(3, 2)
0 0
0 0
0 0
我想改变 A(1, 1) = 1, and A(2, 2) = 1, and A(3, 1) = 1, 这样 A 现在是
1 0
0 1
1 0
我想用向量来表示行和列索引:
rows = [1 2 3];
cols = [1 2 1];
有没有办法在不循环的情况下做到这一点?请记住,这是一个需要处理非常大的 2D 矩阵的玩具示例。为了获得额外的功劳,我是否还可以包含一个向量来指示要插入的值,而不是将其固定为 1?
我的循环方法很简单,但是很慢:
for i = 1:length(rows)
A(rows(i), cols(i)) = 1;
end
【问题讨论】:
-
试试
sub2ind