【发布时间】:2016-02-10 13:50:47
【问题描述】:
我想从一个简单的cell-array 中提取一些特定的值,如下所示:
CellExample{1} = [1,54,2,3,4]
CellExample{2} = [1,4,1,92,9,0,2]
...
我还有一个额外的数组,它告诉我要从每个 Cell 元素中提取哪个元素。数组和单元格一样长:
ArrayExample = [2,4,...]
基本上,我想要一个表示:
Solution(1) = CellExample{1}(ArrayExample(1)) = 54
Solution(2) = CellExample{2}(ArrayExample(2)) = 92
我想过用cellfun,但是我在正确使用它时还是有一些问题,例如:
cellfun(@(x) x{:}(ArrayExample),CellExample,'UniformOutput',false)
【问题讨论】:
-
您的解决方案(1)不是应该是 54 吗?还是我错过了什么?
-
cellfun()已经将单元格的内容传递给匿名函数,因此不需要{:} -
从循环开始,使用循环没有任何错误。先有一些功能性的东西,然后再考虑让它变得漂亮/高效。
-
@Oleg,你是对的 - 实际上,我只是通过使用调试器发现了这一点 - 但是,我仍然无法从数组中传递正确的值
-
@Jonas 现在是 52,而不是 54...
标签: arrays matlab cell-array