I have an N x N matrix, A, and a vector of row indices, v. I want to replace the diagonal elements of A only for the rows in A specified by v without using a for loop.
For example:
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; I feel like there must a one-line method of doing this, but can't seem to figure out what it would be.
Cheers