首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB中基于数组的单元格特定值提取方法

MATLAB中基于数组的单元格特定值提取方法
EN

Stack Overflow用户
提问于 2016-02-10 13:50:47
回答 1查看 154关注 0票数 0

我想从一个简单的cell-array中提取一些特定的值,如下所示:

代码语言:javascript
复制
CellExample{1} = [1,54,2,3,4]
CellExample{2} = [1,4,1,92,9,0,2]
...

还有一个额外的数组,它告诉我要从每个Cell元素中提取哪个元素。数组与单元格一样长:

代码语言:javascript
复制
ArrayExample = [2,4,...]

基本上,我需要一个数组,上面写着:

代码语言:javascript
复制
Solution(1) = CellExample{1}(ArrayExample(1)) = 54
Solution(2) = CellExample{2}(ArrayExample(2)) = 92

我曾想过使用细胞乐趣,但我仍然有一些问题,正确使用它,例如:

代码语言:javascript
复制
cellfun(@(x) x{:}(ArrayExample),CellExample,'UniformOutput',false)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-10 13:59:25

以下是

代码语言:javascript
复制
Cell{1} = [1,54,2,3,4]
Cell{2} = [1,4,1,92,9,0,2]

cellfun(@(x) disp(x), Cell)

等于循环。

代码语言:javascript
复制
for ii = 1:numel(Cell)
    disp(Cell{ii})
end

也就是说,cellfun()已经将每个单元格的content传递给匿名函数。

但是,由于您希望将一个arrayfun(),数字数组作为第二个输入传递给匿名函数,而且cellfun()只接受cell()输入,所以需要使用不解压缩单元格内容的。

就你而言:

代码语言:javascript
复制
arrayfun(@(c,pos) c{1}(pos), Cell, Array)

它相当于:

代码语言:javascript
复制
for ii = 1:numel(Cell)
    Cell{ii}(Array(ii))
end
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35317047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档