matlab - 如何在更大的元胞数组中选择每个元胞数组的第二个元素?

标签 matlab cell-array

输入

hhh={{1,11},{2,22},{3,33},{4,44}}

预期输出

11 22 33 44

附言hhh{1}{2}hhh{2}{2}hhh{3}{2}hhh{ 4}{2} 返回正确的输出,但我正试图找到如何像 hhh{:}{2} 那样做。

最佳答案

一种方法是使用cellfun

n=2
cellfun(@(x)(x{n}), hhh)

这实际上只是 for 循环的缩写。

或者另一种可能是完全矢量化但更难以概括的是首先线性化然后选择每个第二个元素:

temp = [hhh{:}]
[temp{2:2:end}]

Octave 允许在一行中执行此操作(不幸的是,Matlab 不允许):

[hhh{:}](2:2:end)

关于matlab - 如何在更大的元胞数组中选择每个元胞数组的第二个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19136779/

相关文章:

arrays - 如何在 matlab 中对子矩阵进行 "iterate"

Matlab - 投票矩阵

arrays - 如何按特定规则在 MATLAB 中重新排列数组?

c - Matlab 编译器链接错误(64 位与 32 位)

python - 从 python 调用 Matlab 函数

matlab - 如何将矩阵划分为大小不等的子矩阵?

matlab - 将多个元胞数组合并为一个元胞数组 (Matlab)

string - 在 MATLAB 中将数字转换为元胞数组中的字符串

matlab - 使用花括号和括号访问单元格元素之间的区别