How to access an cell array using an cell array of indices

Hello All, Suppose we have cell arrays as A={[1 2 3],[4 5 6 7 8],[9 10 11 12]} B={[1:2],[2:4],[1:3]} How can I access A using B as indices, namely, extracting the first cell of A, A{1} using the index number from B{1}, etc. Therefore the output will be {[1 2],[5 6 7],[9 10 11]}
I greatly appreciate your input!!

 채택된 답변

Stephen23
Stephen23 2017년 4월 29일
Using cellfun (not faster, just more compact):
>> A = {[1,2,3],[4,5,6,7,8],[9,10,11,12]};
>> B = {1:2,2:4,1:3};
>> C = cellfun(@(a,b)a(b),A,B,'uni',0);
>> C{:}
ans =
1 2
ans =
5 6 7
ans =
9 10 11

추가 답변 (1개)

shelley
shelley 2017년 5월 1일

0 개 추천

Thank you very much, John, Stephen! It's good to know cellfun is actually slower than or on par with for loop.

카테고리

도움말 센터 및 File Exchange에서 Cell Arrays에 대해 자세히 알아보기

질문:

2017년 4월 28일

답변:

2017년 5월 1일

Community Treasure Hunt

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

Start Hunting!

Translated by