vectores una sumar programacion matriz matrices magica llenar filas extraer elementos como columnas cambiar matlab matrix row

una - plot matlab



Obtenga una columna diferente en cada fila (2)

Puede usar sub2ind para convertir (i, j) índices a índices lineales en la matriz A

idx = sub2ind(size(A), 1:size(A, 1), B''); A(idx) ans = 2 4 5

Eso funciona suponiendo que el vector B tiene tantas entradas como filas hay en A. En el sub2ind anterior se genera un índice lineal para cada par de números de fila subsiguientes (1: tamaño (A, 1)) y números de columna dados en B.

Me gustaría obtener una columna diferente de cada fila de una matriz. Por ejemplo:

A = [1,2;1,4;5,2] B = [2;2;1]

la salida debe ceder:

out = [2;4;5]

En resumen: A es la matriz y B tiene los índices para las columnas por fila. ¿Cómo puedo hacer esto sin usar un bucle (si es posible)?


Puedes hacerlo por diag(A(:,B)) , sin embargo hay un bucle, pero solo implícito. No sé cómo hacerlo sin ningún bucle.