我有一个N x N矩阵, A ,以及一个行索引向量 v 。我想仅为 v 指定的 A 中的行替换 A 的对角元素,而不使用for循环。
例如:
N = 10;
A = rand(N,N); %Random N x N matrix
v = [1 4 6 9 10]; %vector of row indices
%What I want to do but without a for loop:
for i = 1:length(v)
A(v(i),v(i)) = 0;
end
%I thought this would work, but it does not:
%A(v,v) = 0;
我觉得必须采用单行方法,但似乎无法弄清楚它会是什么。
干杯
答案 0 :(得分:5)
使用sub2ind
:
A(sub2ind(size(A),v,v)) = 0;