しおしお おしお

びぼーろくなど

MATLABで躓いたことメモ

使い始めて*ヶ月、未だに慣れません。

というわけで、ちょっと前に引っかかったMATLABの罠(※使用Verは2017a)

  • table型の要素はeq()できない
  • getfield()で構造体のメンバを指定して一括で値を読んだとき、同じ数字が連続※していると、勝手にunit8型に変換される(※flagみたいにメンバの値がすべて1である等)
  • 読んだ直後にdouble型に変換すると、もとの値がちゃんと出てくる
  • 読んだ値を、型変換せずにhorzcat()でくっつけると、くっつけた先のdouble型だったやつもuint8型になっている

 

できればstruct型(構造体)じゃなくてtable型でもろもろのデータを扱いたいのですが、プロプライエタリなソフトに依存しているデータを扱ったりすると、データを読み込んだ直後の形式が特定の型(今回はstruct型)に限定されてしまいます。

そこからtableに変換しようとしても、型変換がうまくいかなかったり、変換後のデータが思った通りでないといった問題に当たることもあって、結局はstruct型でいっかー、となるこの頃です。

 

あとはスクリプトファイルのエンコードが選べないので、SourceTree上で履歴管理する際にdiff部分が文字化けするといった問題も…
(外部diffツール使えば一応確認はできる)

 

うーむ。