0

Ipod Touch のセンサー データ アプリケーションからデータをプロットしようとしています (加速度計、ジャイロ、およびその他のセンサー データをキャプチャできます)。このデータを保存する方法は、最初の行が変数名のヘッダーで、次の行がデータである CSV です。

matlabs csvread() 関数は混合タイプの csv ファイルを許可しないことを理解しているので、インポートするときに、入力して最初の行を除くすべてをインポートしようとしました

M = csvread(testfile, 1, 0)

これにより、最初の行を除くすべての列とすべての行がインポートされるという印象を受けます。

しかし、マトリックスの一部を印刷しようとすると

M(1:5,1:5)

最初の行から最初の列の値を何度も表示する最初の列を除いて、すべての行と列にゼロを表示します。これを M(1:10,1:10) および M(1:60,1:42) (CSV には合計 42 列しかありません) に変更してみましたが、何も変わりません。CSV 全体は 2196 行 (ヘッダー行を含む) です。

私はmatlabの初心者ですが、読んだドキュメントから、これが機能しない理由がわかりません。CSV データのインポートとプロットに関するヘルプはありますか? ありがとう!

場所のためにセンサーデータを削除しました

4

1 に答える 1

2

これは非回答のように思われます...

これらの行をコピーしてファイルに保存すると ( sensor.csv)、実行するとM = csvread('sensor.csv', 1, 0);(あなたがしたように)、Matlab は次元 [30 42] の M の「適切な」配列を作成します。

印刷しようとすると、タイムスタンプが他の値よりもはるかに大きいため、最初の列にのみ値があるように見えます。したがって、あたかもすべてゼロであるかのように見えます。実際には、行列を印刷するMと、1E8 の「グローバル スケーリング ファクター」で印刷されます。

列 1 (例) を印刷しない場合M(:, 2:7)は、より合理的に見えるでしょう。与えられた例では、XYZ の加速度とロール/ピッチ/ヨーを取得します。すべてがよさそうだ。

あなたはMatlabのスケーリングにだまされています。あなたのコードは問題ありません。これで、センサー データを取得したときに iPod がどこにあったかがわかります。メキシカングリルが隣にあるといいですね!?

于 2013-08-14T20:22:25.363 に答える