如何在更大的单元阵列中选择每个单元阵列的第二个元素?

hhh*_*hhh 4 matlab cell-array

输入

hhh={{1,11},{2,22},{3,33},{4,44}}
Run Code Online (Sandbox Code Playgroud)

预期输出

11 22 33 44
Run Code Online (Sandbox Code Playgroud)

PS hhh{1}{2},hhh{2}{2},hhh{3}{2}hhh{4}{2}返回正确的输出,但我试图找到如何做到这一点像hhh{:}{2}.

Dan*_*Dan 9

一种方法是使用 cellfun

n=2
cellfun(@(x)(x{n}), hhh)
Run Code Online (Sandbox Code Playgroud)

这基本上只是for循环的简写.

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

temp = [hhh{:}]
[temp{2:2:end}]
Run Code Online (Sandbox Code Playgroud)

Octave允许这一行(不幸的是Matlab):

[hhh{:}](2:2:end)
Run Code Online (Sandbox Code Playgroud)