loop-free numeric array indexing when numeric array inside cell array

12 次查看(过去 30 天)
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.

采纳的回答

Geoff
Geoff 2012-3-15
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.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Type Identification 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by