Indexing of cell array using cellfun
10 ビュー (過去 30 日間)
古いコメントを表示
I have a cell array (10x1) where each cell is a numeric array (Mx2) and a vector with key indicies.
%Example [Code formatting SCd]
C=cell(10,1)
C{1}=rand(4,2)*10
C{2}=rand(5,2)*10...C{10}=rand(3,2)*10
V=1:10
I want to extract from C{1} the first element in V(1) C{2} the 2nd element of V(2)....
my initial thought was something like this, which of course doesn't work but...
out=cellfun(@(x) x(v(x),:),C, 'uniformoutput',false)
any suggestions on how do do this outside of a loop?
Thank You!
0 件のコメント
回答 (3 件)
Sean de Wolski
2011 年 10 月 19 日
C = mat2cell(rand(100,2),ones(1,10)*10,2);
V = randperm(10).';
out = cellfun(@(c,idx)c(idx,:),C,num2cell(V))
perhaps?
0 件のコメント
Jason Schroder
2011 年 10 月 19 日
1 件のコメント
Sean de Wolski
2011 年 10 月 19 日
that's what it is now that I made the edit. Basically it takes two 10x1 cells and does the same thing to each row of cells:
so
C(1)then the V(1) or V(1,:) parts etc.
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!