マーカーセットの作成
前回の更新から随分時間が経ってしまいましたが、今回はマーカーセットの作成について紹介したいと思います。
作成と言っても、もともとあるモデルを編集して作成していきます。
前回の記事では、「gait2354_Scale_MarkerSet.xlm」を開いたところで終わっていたと思います。
今回はこのマーカーセットをもとに編集していきます。
まず、マーカーセットを編集できる状態にしなければならないのですが、マーカーセットの編集にはOpenSimは使いません。
使用するソフトはExcelとテキストエディタです。
Excelを起動し、ファイルを開くメニューから「gait2354_Scale_MarkerSet.xlm」を開きます。
そうすると、このような画面が表示されるはずです。
同じファイルをテキストエディタでも開きます。
(ちなみに、私が使用しているのはサクラエディタです。)
なぜExcelとテキストエディタを使用するかというと、Excelは内容を理解しやすいのですが、xmlファイルで正しく保存することができません。そこで、Excelで開いて、内容を理解した上でテキストエディタで編集していこうというわけです。
両方の画面を照らし合わせて見て頂くとわかると思いますが、簡単に解説します。
例えば、「Sternum」のマーカーについて見ていきます。
Excelの画面で「name2」というところにSternumと書かれていると思います。
これは、テキストエディタでは、5行目の
同様に、他の項目についても見ていくと、このマーカーはtorsoセグメントを構成していますので、Excelでは「body」の列に「torso」と書かれています。一方、テキストエディタでは、「
torso 」というようにダグ内に書かれています。それ以降も同様に、Excel画面の1行目の文字が、テキストエディタでは「<>」で囲まれたような状態で書かれていると考えてください。
このようにして、テキストエディタの内容が理解できるようになったところで、テキストエディタで開いたファイルを名前をつけて保存しておきましょう。
万が一、データが壊れてしまった場合に、もともとのマーカーセットのデータまで壊れてしまわないためです。
(再度、ダウンロードするという方法もありますが、面倒なので)
そこまでできたら、さっそく編集に入っていきます。
編集するにあたり、一番重要なのは、マーカーの名前です。
つまり、「Marker name="マーカーの名前"」です。
ここに書かれているマーカーの名称とViconデータ内のマーカーの名称が一致している必要があります。
つまり、Vicon Nexusの赤枠で囲んだ部分に表示されている名前と、ここに入力する名前が完全に一致していなければなりません。
この画面のデータはPlugingaitを使っているので、ネット上にマーカーセットのデータが落ちていますが、独自のマーカーセットを使っている場合には、近いマーカーセットのサンプルをもとに自分でそれを編集してマーカーセットデータを作成しなければなりません。
例えば、マーカーを増やしたい場合には、さきほどのテキストエディタの画面でいうところの5行目から33行目までをコピーして、内容を書きかえてやれば増やすことができ、逆に減らす場合には同様に「Marker」で囲まれた部分を削除してあげればOKです。
次に、実際の編集の仕方ですが、基本的には、どのセグメントを構成するマーカーなのかと、そのセグメントにおける位置を決めてやれば良いだけです。
もしかすると、もっと細かいきまりがあるかもしれませんが、まだそこまで理解できていません。既存のマーカーセットにマーカーを少し加える、もしくは少し位置を変えるくらいの編集であればこの程度で問題ないはずです。
まずは、構成するセグメントを決めます。
bodyダグの中にセグメント名を書き込んでください。
マーカーの位置はセグメント座標系の原点からの位置になりますので、セグメントを間違えるとおかしなことになります。
位置の編集は、OpenSimで開いて確認しながらすると良いでしょう。
あとはひたすら根気よく調整を繰り返すのみです。
モデルのダウンロード
今回はモデルの作成方法について解説していきたいと思います。
まずは、サンプルモデルをダウンロードしましょう。
Models.zipをダウンロードすると、基本的なモデルがほとんどそろっています。
まずは、歩行分析などに用いられるモデルを開いてみましょう。
Fileから「Open Model」を選択します。
そして、先ほどダウンロードした、Models.zipの中の「Gait2354_Simbody」フォルダを開き、「gait2354_simbody.osim」を開きます。
そうすると、このような腕のないヒトのモデルが開きます。
ここにモーションキャプチャで測定したデータを読み込むためのマーカーセットを作成する必要があります。
そのためにデフォルトのマーカーセットをまずは確認しましょう。
同じフォルダ内に「gait2354_Scale_MarkerSet.xlm」というファイルがありますので、これを開きます。
そうすると、このようにマーカーが表示されると思います。
ここから、このマーカーを自分の実験データに合わせて動かしていくわけですが、それは次回にしたいと思います。
相関関係の検討
Matlabには標準で簡単な統計を行える関数が備わっています.
最も代表的なものは相関分析でしょう.
corrcoef関数を使うことでPearsonの積率相関係数が算出できます.
その他にもstatistics toolboxを購入することで,t検定などの分析もできるようになります.
statistics toolboxに興味がある方がググってもらうとして,相関分析の方法を説明します.
[r,p]=corrcoef(変数)
と書いて使用します.
rは相関係数,pは有意確率です.
変数には,系列を行に入れていきます.例えば,1行目に疾走速度,2行目に腿上げ角度,という具合に.
あとは実行してやると相関行列と有意確率の行列が出てきます.
ちなみに,変数は何系列あっても大丈夫です.
私が試した限りでは,30系列くらいは問題なく実行されました.
おそらく,使用しているマシンパワーに依存していると思われるので,相当な数でも分析してくれると考えられます.
Matlab 起動時のフォルダを設定
こんにちは.
今日は起動時に開かれるフォルダの設定方法を紹介したいと思います.
Matlab起動時のフォルダは,Windowsではインストール時に作成されるMydocument内のMATLABフォルダ,Macではユーザーフォルダに設定されていると思います.
これを別のフォルダに設定したい場合,いくつか方法があります.
1.userpath関数
まず紹介するのは,userpathという関数を使う方法です.
例えば,Macでhogeというユーザーのフォルダの中の「analysis」フォルダにmatlabのデータを置いて使うことを想定した場合には
userpath('/Users/hoge/analysis/') ;
となります.
これをコマンドウインドウに入力して実行した後にMatlabaを再起動してみてください.
2.startup.m
Matlabの初期設定の起動フォルダに「startup.m」を作成する方法です.
startup.mというファイルに
cd('/Users/hoge/analysis/') ;
と書いて保存しておくだけです.
この方法では.startup.mに書いておくだけでMatlabのあらゆる初期設定ができます.
他にも方法はあるのかもしれませんが,私が知っているのはこの2つだけです.
ぜひ試してみてください.
今後も役立つMatlabの使い方や設定方法などを紹介していきたいと思います.
Matlabが起動しない?OS X Yosemiteに更新する前に確認を。
最小二乗法
今回は最小二乗法による回帰式の求め方を紹介します。
最小二乗法は一般的には、疑似逆行列を用いる方法ではなく、偏微分を用いる方が多いですが、Matlabの処理では疑似逆行列を用いた方が簡単に行えます。
Matlabは行列計算ソフトなので、当然と言えば当然です。
y=ax+b
という形の回帰式を求めたい場合、aとbが求まれば回帰式が作れるわけです。
なので、最小二乗法でaとbを求めます。
そのためには下のような行列式を作ります。
この式のxとyにそれぞれの値を代入していきます。
行列式は次のように置き換えて考えることができます。
行列式で表記すると複雑な気がしますが、AX=Bとおくと、とても簡単な式に見えます。
これをx=の形にしてやると、答えが出てきます。
なので、
と言うように解いてしまいたいのですが、Aは正則行列ではないので逆行列を作ることができません。
そこで、疑似逆行列を作ります。
pinv(A);
とすれば良いだけです。なので、疑似逆行列をA+として
という計算ができます。
これはMatlabでの表記は、さきほどの疑似逆行列の部分と合わせて書くと
ans=pinv(A)*B;
となります。すると、出てきた答えは2行1列の行列になっているはずです。
念のために説明しておくと、1行目がa、2行目がbの値になっています。
同様の方法で最小二乗法でいろいろなものを求めることができます。
疑似逆行列を用いた最小二乗法の説明はあまり見かけないので、簡単に説明してみました。
私の理解も不十分でわかりにくい点もあったかもしれませんが、参考にしてみてください。