モデルのダウンロード
今回はモデルの作成方法について解説していきたいと思います。
まずは、サンプルモデルをダウンロードしましょう。
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の値になっています。
同様の方法で最小二乗法でいろいろなものを求めることができます。
疑似逆行列を用いた最小二乗法の説明はあまり見かけないので、簡単に説明してみました。
私の理解も不十分でわかりにくい点もあったかもしれませんが、参考にしてみてください。
角度の算出 —atan2—
前回はacosを使った余弦定理を用いた角度算出方法を紹介しました。
前回は2つのベクトルのなす角の求め方でしたが、今回は1つのベクトルのある平面内のひとつの軸に対する角度を求めます。例えば、XY平面の中でX軸となす角度などです。
関数atan2の使い方は上の図の通りです。
では、これをどのように使うとベクトルの角度の算出方法になるのか説明していきます。
仮に、上の図のように斜辺がベクトルaだとすると、そのx成分とy成分を使ってその角度を求めることができます。
ベクトルaの成分がx,yの順番で引数に入っているとすると、上の図のような書き方で角度を求めることができます。
なお、これで算出される角度はradianですので、degreeに変換する場合は
「*180/pi」
と最後に付け足してやる必要があります。
この図では「θ」と記号を使っていますが、Matlabの引数に記号は使えないので「theta」などとすればそのまま使用可能です。
これを使うと、セグメント角度の算出が可能になります。
例えば、大腿セグメントの角度を算出する場合、まずは大腿セグメントベクトルを作らなければなりません。
近位から遠位に向かうベクトルとして、大腿セグメントベクトルを作る場合は、膝関節の座標値から股関節の座標値を引きます。
ベクトルの引き算は高校の数学Bの範囲ですので、わからない方は調べてみてください。
これはそんなに難しい概念ではありません。
次に、さきほど引き算で作成したベクトルの角度を算出します。
さっき説明したように、大腿セグメントベクトルのx成分とy成分をatan2関数に入れてやるだけです。
ちなみに、atan2では-180度から180度の間で角度が求められます。
したがって、atan2(y,x)とそのまま入れた場合は
というような角度の求め方になります。
x成分とy成分の順番を入れ替えたり、-を付けたりすることでどこを基準に角度を求めるかが変わります。
求めたい角度が概ね何度くらいかわかるものから試してみて、どこで求めるのが望ましいか考えなら行うことが良いと思います。