Supongamos que tengo una matriz NxN A, un índice vector V que consiste en un subconjunto de los números 1: N, y un valor de K, y yo quiero hacer esto:¿Cómo asignar valores en la diagonal?
for i = V
A(i,i) = K
end
¿Hay una manera de hacer esto en una declaración w/vectorization?
p. Ej. A (algo) = K
La instrucción A(V,V) = K
no funcionará, asigna elementos fuera de diagonal, y esto no es lo que quiero. por ejemplo:
>> A = zeros(5);
>> V = [1 3 4];
>> A(V,V) = 1
A =
1 0 1 1 0
0 0 0 0 0
1 0 1 1 0
1 0 1 1 0
0 0 0 0 0
fresco, funciona! aceptará cuando el estúpido temporizador se agote –
@Jason S: ¡Gracias! De hecho, me parece un problema molesto; A menudo intento usar 'diag' primero, antes de recordar usar' eye' – Jonas
para los segundos últimos ejemplos, sugiero usar la función sub2ind de matlab para encontrar los índices absolutos. En mi opinión, este es el enfoque más directo (y más fácil de leer) y podría reemplazar sus dos últimas sugerencias. – tc88