how to process cell array

1 view (last 30 days)
zhang
zhang on 6 Aug 2012
Hi guys
I have two cell arrays A, B.
A = {[1 -1 1], [2 3 6 5]};
B = {[2 1], [1 4]};
B is the index for A.
I'd like to have a certain function A(B) give me
C = {[-1 1], [2 5]}.
Aside from cellfun, Is there any other ways to do this?
Thanks,
  2 Comments
Azzi Abdelmalek
Azzi Abdelmalek on 6 Aug 2012
what do you mean B is the index of A? and how C is related to A and B
zhang
zhang on 6 Aug 2012
C{i} = A{i}(B{i})

Sign in to comment.

Answers (1)

Honglei Chen
Honglei Chen on 6 Aug 2012
Edited: Honglei Chen on 6 Aug 2012
c = cellfun(@(a,b) a(b),A,B,'UniformOutput',false)
or
c = arrayfun(@(x)A{x}(B{x}),1:length(A),'UniformOutput',false)
  2 Comments
Walter Roberson
Walter Roberson on 6 Aug 2012
zhang specifically asked "aside from cellfun"
Honglei Chen
Honglei Chen on 6 Aug 2012
Edited: Honglei Chen on 6 Aug 2012
Added a solution with arrayfun, but I don't know if arrayfun is ok

Sign in to comment.

Categories

Find more on Data Types in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!