MATLABで躓いたことメモ
使い始めて*ヶ月、未だに慣れません。
というわけで、ちょっと前に引っかかったMATLABの罠(※使用Verは2017a)
- table型の要素はeq()できない
- getfield()で構造体のメンバを指定して一括で値を読んだとき、同じ数字が連続※していると、勝手にunit8型に変換される(※flagみたいにメンバの値がすべて1である等)
- 読んだ直後にdouble型に変換すると、もとの値がちゃんと出てくる
- 読んだ値を、型変換せずにhorzcat()でくっつけると、くっつけた先のdouble型だったやつもuint8型になっている
できればstruct型(構造体)じゃなくてtable型でもろもろのデータを扱いたいのですが、プロプライエタリなソフトに依存しているデータを扱ったりすると、データを読み込んだ直後の形式が特定の型(今回はstruct型)に限定されてしまいます。
そこからtableに変換しようとしても、型変換がうまくいかなかったり、変換後のデータが思った通りでないといった問題に当たることもあって、結局はstruct型でいっかー、となるこの頃です。
あとはスクリプトファイルのエンコードが選べないので、SourceTree上で履歴管理する際にdiff部分が文字化けするといった問題も…
(外部diffツール使えば一応確認はできる)
うーむ。