Filter löschen
Filter löschen

how to process cell array

1 Ansicht (letzte 30 Tage)
zhang
zhang am 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 Kommentare
Azzi Abdelmalek
Azzi Abdelmalek am 6 Aug. 2012
what do you mean B is the index of A? and how C is related to A and B
zhang
zhang am 6 Aug. 2012
C{i} = A{i}(B{i})

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Honglei Chen
Honglei Chen am 6 Aug. 2012
Bearbeitet: Honglei Chen am 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 Kommentare
Walter Roberson
Walter Roberson am 6 Aug. 2012
zhang specifically asked "aside from cellfun"
Honglei Chen
Honglei Chen am 6 Aug. 2012
Bearbeitet: Honglei Chen am 6 Aug. 2012
Added a solution with arrayfun, but I don't know if arrayfun is ok

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Data Types finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by