我习惯在MATLAB中将数据(有时是大量数据)用作矩阵或单元格。我想转而通过SQLite之类的工具来管理更大的数据集。
所以这是我的问题。如何从MATLAB变量(再次是多维数值矩阵以及带有文本输入的单元格)到数据库的概念转换?例如,如果我在MATLAB中有一个4D矩阵,是否可以将数据直接存储为表?还是我需要做一些事情,例如制作多个带标签的2D表?数据库中的所有数据都存储在表中吗?
认为从MATLAB到数据库的数据迁移或多或少像是将多维MATLAB变量重组为一组2D表,这是否正确?
将数据从MATLAB环境迁移到sql可访问的数据库的任何经验都将有所帮助。
表格不是2D数组。4D 2 * 2 * 2 * 2数组存储为{{{{1,2},{3,4}},{{5,6},{7,8}}},{{{9,10 },{11,12}},{{13,14},{15,16}}}}(甚至在手册中提到)。这意味着在数据库中我们可以将其存储为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。您可能应该查找数组数据结构和数据库基础知识的主题(应该查看关系代数,这些代数是基于数据库的,但是存在差异)。
无论哪种方式,它都不是Matlab与数据库的真正问题,除非您对与其他语言不同的Matlab某些要素有特定的疑问。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句