Duplicar posibles:
How can I change the values of multiple points in a matrix?Matlab: asignar a la matriz con pares índice de la columna fila
tengo una matriz A
y tres vectores de la misma longitud, r
, sosteniendo los índices de las filas a asignar, c
, que contiene los índices de las columnas a asignar, y v
que contiene los valores reales a asignar.
Lo que quiero obtener es A(r(i),c(i))==v(i)
para todos i
. Pero hacer
A(r,c)=v;
no cede el resultado correcto como Matlab lo interpreta como la elección de cada combinación posible de r
y c
y la asignación de valores a la misma, por ejemplo
n=5;
A=zeros(n);
r=1:n;
c=1:n;
A(r,c)=1;
produce una matriz de unos, donde me gustaría obtener la matriz de identidad ya que quiero A(r(i),c(i))==1
para cada i
, es decir, solo los elementos en la diagonal deberían verse afectados.
¿Cómo puedo lograr el resultado deseado, sin un lazo for
?
pregunta similar: [La conversión de una matriz de MATLAB para un vector ] (http://stackoverflow.com/questions/1931545/converting-a-matlab-matrix-to-a-vector) – Amro
@Amro - Aunque estoy de acuerdo en que las respuestas a ambas preguntas son muy similares, las preguntas son diferentes. quería saber cómo asignar a una matriz, mientras que la otra pregunta quiere saber cómo convertir una matriz en un vector. Uno no alcanzaría la otra pregunta cuando busque una respuesta a mi pregunta. – olamundo
No te voté, simplemente lo relacioné con la otra pregunta por ser similar (en lugar de votar para cerrar como duplicado). – Amro