3

Androidフォンで収集したデータがあり、SQLiteファイルにSQLite形式で保存されています。MatLabまたはOctaveを使用して、このデータをいじって(分析して)みたいと思います。SQLite データはファイルとして保存されます。

このデータを MatLab にインポートするには、どのコマンドを使用するのだろうか? つまり、ベクトルまたは行列に入れます。SQL 形式にアクセスするには、特別なツールボックスやデータベース パッケージなどのパッケージが必要ですか?

4

2 に答える 2

4

mksqliteツールがあります。

私はそれを個人的に使用しましたが、私のバージョンの matlab の正しいバージョンを取得する際にいくつかの問題がありました。しかし、その後は問題ありません。データベース ファイルを直接クエリして、matlab にインポートするデータの量を減らすこともできます。

于 2012-08-08T12:35:35.527 に答える
3

mksqliteは良さそうに見えますが、Octave では利用できず、長期的なソリューションとしては適していない可能性があります。テーブルを CSV ファイルにエクスポートすることはオプションですが、(Octave への) インポートは、文字列の解析が関係するため、大きなデータ セットの場合は非常に遅くなる可能性があります。

別の方法として、SQLite テーブルを MAT ファイルに変換する小さな Python スクリプトを作成することになりました。このファイルは、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)
于 2013-03-26T01:12:42.520 に答える