how to process cell array

1 次查看(过去 30 天)
zhang
zhang 2012-8-6
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 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2012-8-6
what do you mean B is the index of A? and how C is related to A and B
zhang
zhang 2012-8-6
C{i} = A{i}(B{i})

请先登录,再进行评论。

回答(1 个)

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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Types 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by