Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将SQLite数据(由Android设备收集)导入Octave或MatLab?_Sqlite_Matlab_Signal Processing_Octave - Fatal编程技术网

如何将SQLite数据(由Android设备收集)导入Octave或MatLab?

如何将SQLite数据(由Android设备收集)导入Octave或MatLab?,sqlite,matlab,signal-processing,octave,Sqlite,Matlab,Signal Processing,Octave,我用安卓手机收集了一些数据,这些数据以SQLite格式存储在SQLite文件中。我想用MatLab或Octave来处理(分析)这些数据。SQLite数据存储为文件 我想知道您将使用什么命令将这些数据导入MatLab?也就是说,把它放到一个向量或矩阵中。我是否需要任何特殊的工具箱或包(如数据库包)来访问SQL格式?有这个工具 我个人使用过它,在为我的matlab版本获取正确版本时遇到了一些问题。但在那之后,就没有问题了。您甚至可以直接查询数据库文件,以减少导入matlab的数据量。尽管mksqli

我用安卓手机收集了一些数据,这些数据以SQLite格式存储在SQLite文件中。我想用MatLab或Octave来处理(分析)这些数据。SQLite数据存储为文件

我想知道您将使用什么命令将这些数据导入MatLab?也就是说,把它放到一个向量或矩阵中。我是否需要任何特殊的工具箱或包(如数据库包)来访问SQL格式?

有这个工具

我个人使用过它,在为我的matlab版本获取正确版本时遇到了一些问题。但在那之后,就没有问题了。您甚至可以直接查询数据库文件,以减少导入matlab的数据量。

尽管mksqlite看起来不错,但它不适用于倍频程,可能不适合作为长期解决方案。将表导出到CSV文件是一个选项,但是对于较大的数据集,导入(到倍频程)可能会非常慢,因为涉及到字符串解析

作为替代方案,我最终编写了一个小Python脚本,将我的SQLite表转换为MAT文件,该文件可以快速加载到Matlab或Octave中。MAT文件是平台无关的二进制文件,该方法适用于带有数字和字符串的列

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
,得到了一些警告,然后安装了它。