Имам N x N матрица, А, и вектор от ред индекси, V, Искам да заместя диагоналните елементи на А само за редовете в А посочен от V без да използвате линия за.
Например:
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;
Имам чувството, че трябва да има еднолинеен метод за това, но не мога да разбера какво ще бъде.
Наздраве
Отговори:
5 за отговор № 1употреба sub2ind
:
A(sub2ind(size(A),v,v)) = 0;