我曾经在MATLAB中使用数据(有时是大量数据)作为矩阵或单元格。我想通过像SQLite这样的工具切换到管理更大的数据集。
所以这是我的问题。我如何处理从MATLAB变量(再次是多维数值矩阵,以及带有文本条目的单元格)到数据库的概念切换?例如,如果我在MATLAB中有一个4D矩阵,有没有办法将这些数据直接存储为表格?或者我是否必须做一些事情,例如,制作多个标记的2D表格?数据库中的所有数据都存储在表中吗?
认为从MATLAB到数据库的数据迁移或多或少似乎是将多维MATLAB变量重组为一组2D表是否正确?
将数据从MATLAB环境迁移到可通过sql访问的数据库的任何经验都会有所帮助。
答案 0 :(得分:1)
表格不是2D数组。 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的某些与其他语言不同的元素有特定的疑问。