表和分类数组以及单元格数组和结构数组有什么区别



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

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

分类

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

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

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

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

我使用表格格式在我的数据中组织不同的输入/输出事例,其中结果可能来自不同的表。与结构或单元阵列相比的主要优点:

  • 方便的表函数,如连接、内部连接、外部连接
  • 字段的使用<>比数组更健壮的编程
  • 数据格式易于导出/导入(例如分隔.txt文件(<>无需fprintf((
  • 数据文件可以在excel/Calc(libreoffice(中打开,<>没有.mat

最新更新