Quiero obtener un vector de elementos de una matriz de Matlab en ubicaciones predefinidas. Por ejemplo, tengo el siguienteConvertir una matriz de matlab en un vector
>> i = [1,2,3];
>> j = [1,3,4];
>> A = [1,2,3,4; 5,6,7,8; 9,10,11,12; 13,14,15,16]
A =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Quiero un vector que me dará los valores de A
en los lugares correspongin a i,j
. Intenté
A(i,j)
ans =
1 3 4
5 7 8
9 11 12
pero esto no es lo que quería. Quiero obtener la siguiente
>> [A(i(1),j(1)); A(i(2),j(2));A(i(3),j(3))]
ans =
1
7
12
¿Cuál es la sintaxis de matlab para eso? Por favor, evite sugerir bucles o cualquier cosa que no esté en forma vectorizada, ya que necesito que esto se haga rápidamente. Esperemos que haya alguna función incorporada.
Si bien esto funcionará, es una opción pobre en general, ya que primero crea una nueva matriz 3x3 en la memoria, luego arroja la mayor parte de esa matriz en el cubo de bits utilizando la función diag. Si sus matrices y la lista de puntos en (i, j) eran en general, entonces el truco de diagnóstico sería bastante ineficiente. –