【问题标题】:How can I programmatically group table column variables MATLAB?如何以编程方式对表列变量 MATLAB 进行分组?
【发布时间】:2018-04-11 21:39:14
【问题描述】:

如果我创建一个表:

t = table(magic(3));

我得到一个带有单数变量名的表

但是如果我:

a = magic(3);
T = array2table(a);

然后我得到一个包含三个变量名称的表:

如果我尝试通过仅向表发送一个变量名来对列进行分组:

T.Properties.VariableNames = {'OneName'};
The VariableNames property must contain one name for each variable in the table.

在第二种情况下,可以通过突出显示列并右键单击鼠标来手动将列合并为一列。

如果我已经创建了矩阵a,我如何以编程方式将三个变量组合成一个变量,如第一个示例所示?

编辑:

*如果我已经创建了表a,那么在第一个示例中?

我正在使用 R2017b

根据下面的评论,我在问如何在 R2018a 之前执行 mergevars

在上面的例子中,我可以将它们组合成一个变量:

t = table(a);

换句话说,我希望创建多个多列变量。换句话说,在 R2018a 之前做mergevars

【问题讨论】:

  • 我不明白。你问...我是否已经创建了矩阵a。但是给定a,您可以使用t = table(a),如第一个代码sn-p
  • 如果您的意思是创建t T,请参阅mergevars(需要R2018a)
  • 只需使用table(a) 而不是array2table(a)array2table 的重点是数组列被分成单独的表列。
  • @Luis Mendo 谢谢路易斯。我在谷歌搜索中没有听说过mergevars

标签: matlab matlab-table


【解决方案1】:

一旦创建了表T 并为每列指定了一个变量名,就可以提取列值,然后将其分配回T

b = T{:, 1:2};
c = T{:, 3};
T = table(b, c);

【讨论】:

    猜你喜欢
    • 2012-07-27
    • 1970-01-01
    • 2022-11-18
    • 2017-10-25
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多