【问题标题】:How do databases differ from MATLAB variables?数据库与 MATLAB 变量有何不同?
【发布时间】:2015-11-02 06:46:27
【问题描述】:

我习惯于在 MATLAB 中将数据(有时是大量数据)作为矩阵或单元格来处理。我想通过 SQLite 等工具切换到管理更大的数据集。

所以这是我的问题。如何处理从 MATLAB 变量(同样是多维数值矩阵,以及带有文本条目的单元格)到数据库的概念转换?例如,如果我在 MATLAB 中有一个 4D 矩阵,有没有办法将该数据直接存储为表格?或者我是否必须做一些事情,比如制作多个带标签的 2D 表?数据库中的所有数据是否都存储在表中?

认为将数据从 MATLAB 迁移到数据库或多或少类似于将多维 MATLAB 变量重组为一组 2D 表是否正确?

任何将数据从 MATLAB 环境迁移到 sql 可访问数据库的经验都会有所帮助。

【问题讨论】:

  • 有趣的问题,恐怕是错误的 Stack Exchange 网站。这更适合 StackOverflow。
  • 糟糕!我刚刚在网址中看到了“统计信息”。我会把它贴在别的地方。谢谢=)
  • 只需将其标记为版主干预,其余的将自动处理。不要交叉发布,这是大禁忌。
  • 好的,很好。非常感谢您的帮助。
  • 欢迎来到 Stack Overflow;) 那么你想明确地从 matlab 迁移到 sqlite 吗?或者这只是一种选择?我们很多人都知道matlab而不知道sql,所以你可能想为数据库端添加一些更具体的标签。就matlab而言,一个4d矩阵就是一个4d矩阵,周期。

标签: sql database matlab sqlite


【解决方案1】:

表格不是二维数组。 4D 2*2*2*2 数组存储为 {{{{1,2},{3,4}},{{5,6},{7,8}}},{{{9,10 },{11,12}},{{13,14},{15,16}}}} (it's even mentioned in the manual)。这意味着在数据库中我们可以将其存储为 4 个坐标 (x,y,z,t) 和一个值。

x|y|z|t|value
-+-+-+-+-----
1|1|1|1|1
1|1|1|2|2
1|1|2|1|3
.........

现在你不做 A(1,2,3,4) 你做SELECT value FROM a WHERE x = 1 AND y = 2 AND z = 3 AND t = 4

虽然取决于您的数据实际上它也可能是每行 3 个坐标和 2 个值

x|y|z|value1|value2
-+-+-+------+------
1|1|1|1     |2
1|1|2|3     |4
.........

或者,如果您只需要一次选择整个数组,您可以将它作为 json 或 csv 值存储在一行中。

如果您有多个数组,您还需要一个 array_id 列。 array_id 可以是包含数组名称和描述的表的 FK。您可能应该查找数组数据结构和数据库基础的主题(您应该查看relational algebra 哪些数据库基于但存在差异)。

无论哪种方式,它都不是一个真正的 Matlab 与数据库问题,除非您对 Matlab 的某些与其他语言不同的元素有特定的问题。

【讨论】:

  • 谢谢。这很有意义。
猜你喜欢
  • 1970-01-01
  • 2019-11-14
  • 1970-01-01
  • 2020-01-21
  • 2022-12-08
  • 1970-01-01
  • 1970-01-01
  • 2011-05-12
  • 1970-01-01
相关资源
最近更新 更多