Octave:将给定的映射应用于单元阵列

时间:2012-10-14 10:04:52

标签: matlab octave cell-array

想象一下,我在Octave中有一个单元格数组“列表列表”:

octave:6> a = {[1], [3,4], [5,6,7], [8,9,10,11]}
a =
{
  [1,1] =  1
  [1,2] =

     3   4

  [1,3] =

     5   6   7

  [1,4] =

      8    9   10   11

}

现在我想从每个嵌套行中提取给定元素,并且每个嵌套行的索引都在列表中给出。例如。 [1,2,3,3]意味着返回[1,4,6,10]。

最好的Octave-ish方法是什么?我知道如何用循环来做到这一点,但这看起来很难看......

1 个答案:

答案 0 :(得分:2)

似乎我找到了对我有益的解决方案。我意识到cellfun()需要一些参数,所以我可以轻松地执行元素映射。

octave:31> cellfun(@(x,y) x(y), a, {1,2,2,3})
ans =

    1    4    6   10