如何将SQLite数据(由Android设备收集)导入Octave或MatLab?
我用安卓手机收集了一些数据,这些数据以SQLite格式存储在SQLite文件中。我想用MatLab或Octave来处理(分析)这些数据。SQLite数据存储为文件 我想知道您将使用什么命令将这些数据导入MatLab?也就是说,把它放到一个向量或矩阵中。我是否需要任何特殊的工具箱或包(如数据库包)来访问SQL格式?有这个工具 我个人使用过它,在为我的matlab版本获取正确版本时遇到了一些问题。但在那之后,就没有问题了。您甚至可以直接查询数据库文件,以减少导入matlab的数据量。尽管mksqlite看起来不错,但它不适用于倍频程,可能不适合作为长期解决方案。将表导出到CSV文件是一个选项,但是对于较大的数据集,导入(到倍频程)可能会非常慢,因为涉及到字符串解析 作为替代方案,我最终编写了一个小Python脚本,将我的SQLite表转换为MAT文件,该文件可以快速加载到Matlab或Octave中。MAT文件是平台无关的二进制文件,该方法适用于带有数字和字符串的列如何将SQLite数据(由Android设备收集)导入Octave或MatLab?,sqlite,matlab,signal-processing,octave,Sqlite,Matlab,Signal Processing,Octave,我用安卓手机收集了一些数据,这些数据以SQLite格式存储在SQLite文件中。我想用MatLab或Octave来处理(分析)这些数据。SQLite数据存储为文件 我想知道您将使用什么命令将这些数据导入MatLab?也就是说,把它放到一个向量或矩阵中。我是否需要任何特殊的工具箱或包(如数据库包)来访问SQL格式?有这个工具 我个人使用过它,在为我的matlab版本获取正确版本时遇到了一些问题。但在那之后,就没有问题了。您甚至可以直接查询数据库文件,以减少导入matlab的数据量。尽管mksqli
import sqlite3
import scipy.io
conn = sqlite3.connect('my_data.db')
csr = conn.cursor()
res = csr.execute('SELECT * FROM MY_TABLE')
db_parms = list(map(lambda x: x[0], res.description))
# Remove those variables in db_parms you do not want to export
X = {}
for prm in db_parms:
csr.execute('SELECT "%s" FROM MY_TABLE' % (prm))
v = csr.fetchall()
# v is now a list of 1-tuples
X[prm] = list(*zip(*v))
scipy.io.savemat('my_data.mat', X)
数据有多复杂?它只是表格中的数字(可以导出为CSV)还是更复杂的内容?它主要是文件中的一个表格,表格中填充了数字(但有一列的时间为hh:mm:ss.ms格式)。现在我将尝试CSV想法(为这个想法干杯)。我想我会使用MatLab中的文件I/o命令?但最终,我会有一堆不同的SQL文件,将每一个文件转换成CSV可能会很麻烦。我正在使用一台linux机器(权限有限),我想知道是否可以在上面使用mksqlite?请在文档页面上查找“如何重建mksqlite”。你只需要一个编译器和matlab。我使用了
buildit
,得到了一些警告,然后安装了它。