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.
0 件のコメント
採用された回答
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 Center および File Exchange で Data Type Identification についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!