loop-free numeric array indexing when numeric array inside cell array
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
My objective is to apply a given function "myfun" to each column within a cell array, using an index vector. I provide an example to be more clear:
C = cell of size(C) = [M, 1];
Each row of C contains an array of the same size. I will call the "k_th" array A_k so that C{k,1} = A_k.
ind = a cell array the same size as C, containing integers.
icol = an array of integer shift values where size(icol) = [size(A_k,2), 1];
Goal: Shift a certain columns ind{k}, in each A_k contained within C by an amount specified by vector icol( : , ind{k} ) WITHOUT the following loop:
for k = 1:size(C,1),
this{k} = circshift( C{ k , 1}, icol( : , ind{k} ) );
end;
I often use "cellfun" or "arrayfun" to operate on arrays, but this seems harder. Thank you in advance.
0 comentarios
Respuesta aceptada
Geoff
el 15 de Mzo. de 2012
You can use cellfun for this if you combine the C and ind cell arrays: ie chuck the ind array as a new column in C.
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!