【问题标题】:What are the differences between Tables and Categorical Arrays, and cell and struct arrays?Tables 和 Categorical Arrays 以及 cell 和 struct 数组之间有什么区别?
【发布时间】:2013-10-03 03:23:17
【问题描述】:

在最新版本的 MATLAB 中,新增了两种数据类型:表格和分类数组。

表格是一种适合保存数据和元数据的新数据类型,可用于混合类型的表格数据,这些表格数据通常作为列存储在文本文件或电子表格中。它由行和面向列的变量组成。

分类数组对于保存分类数据很有用 - 这些数据具有来自离散类别的有限列表的值。

在以前的版本中,我会使用单元格和结构数组来处理这些用例。这些和新的数据类型有什么区别?

【问题讨论】:

  • 我落后于时代了……
  • 不落后,刚刚出来。 :)

标签: matlab


【解决方案1】:

我还没有升级所以我不能玩但是基于this videothis article我已经可以看到一些优势。他们不一定要添加您以前无法做到的功能,而只是消除麻烦。在xlsread 上使用readtable 立即吸引了我。能够通过名称而不是索引来访问列是很棒的,我经常用其他语言来做。在列顺序并不重要的表中(与矩阵不同),能够通过列的名称来寻址列而不需要知道列的顺序是非常方便的。您还可以使用 join 函数合并表格,这在以前使用元胞数组并不容易。我看到你也可以命名行,我没有看到给你带来什么优势,我不能玩,但我知道在某些语言中(比如 Python 中的 PANDAS,我也认为在 R 中)命名行意味着你可以处理具有不完全重叠且不必担心对齐的不同序列的时间序列数据。我希望在 Matlab 中也是如此!分类数组看起来也只是一个额外的便利层,有点像enum。您实际上永远不需要enum,但它只会让开发更加愉快。

无论如何,这只是我的两分钱,我可能不会很快有机会玩它们,但我期待在需要它们时使用它们。

【讨论】:

  • 感谢您的回答和链接。我很惊讶地得知这个问题被搁置了......
  • 同样 - 问题是有什么区别,这并不是一个意见问题。我想看看实际使用过它们的其他人对它们的了解。
【解决方案2】:

我使用表格格式来组织我的数据中不同的输入/输出案例,其中结果可能来自不同的表格。与结构体或元胞数组相比的主要优势:

  • 方便的表函数,如join、innerjoin、outerjoin
  • 字段的使用比数组更健壮的编程
  • 数据格式易于导出/导入(例如分隔的 .txt 文件)没有 fprintf()
  • 数据文件可以在excel/Calc (libreoffice)中打开没有.mat

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 2011-04-16
    • 2011-11-14
    • 2017-04-07
    • 2014-06-04
    • 2014-07-10
    • 2014-06-17
    相关资源
    最近更新 更多