Algunos títulos, ¿eh?
Supongo que tengo una matriz de celdas de vectores (n X 1), A
y una matriz de celdas de vectores que contienen índices en A
, llamado B
. Deseo extraer una matriz de celdas, C
, tal que C{i} = [A{B{i}}]
.
En otras palabras, tengo una matriz de celdas de matrices de índices, y quiero sacar las matrices correspondientes a las concatenaciones de los vectores en A
indexados por cada una de esas matrices de índices.MATLAB: indice una matriz de celdas con una matriz de celdas de matrices y devuelve una matriz de celdas
for i = 1:length(B)
%# B{i} is an array of indices, C{i} is a matrix
C{i} = [ A{ B{i} } ];
end
El bucle es equivalente a:
C = cellfun(@(x)[A{x}],B,'UniformOutput',false); %# implicit for loop w/ closure
¿Puedo hacer que el uso de una expresión de indexación solo? ¿O al menos sin el bucle?
Creo que deal()
podría estar involucrado pero no puede resolverlo.
+1 Bonito deshacerse de 'UniformOutput', 'false'. Qué monstruosidad. –