如何从 Matlab 中的元胞数组创建子元胞?

How to create a sub-cell from a cell array in Matlab?

假设我在 Matlab 中有以下元胞数组数据:

>> data = {'first', 1; 'second', 2; 'third', 3}

data = 

    'first'     [1]
    'second'    [2]
    'third'     [3]

然后我想创建一个只有第一列数据的新元胞数组。我尝试了以下但只得到了 first 值。

>> column_1 = data{:,1}

column_1 =

first

但我想得到的输出是:

>> column_1 = {'first';'second';'third'}

column_1 = 

    'first'
    'second'
    'third'

如何从 data 元胞数组的第一列创建子元胞?

您必须使用圆括号索引而不是花括号索引,如下所示:

data(:,1)

输出:

ans =
      3×1 cell array
      'first'
      'second'
      'third'

基本上,花括号的目的是检索单元格的基础内容并呈现不同的行为。要提取单元格子集,您需要使用圆括号。更多详细信息,请参考 Matlab 官方文档this page