Matlab講習会

Similar documents
スポーツのためのMatlab講習会

Microsoft PowerPoint 電子情報理工学特論.pptx

Microsoft PowerPoint - 講義資料-mlib

Microsoft Word - gnuplot

A. 表の作成 はじめに 講座テキストページに保存されている表 1 の元データをエクセル 2010 にコピーします (No1) 講座テキスト (Web ページ ) に示した表 1 過去 12 年間の為替と外貨準備の推移 のデータ表を選択する この表 1 を選択した状態で WEB ページの 編集 コピ

スライド 1

問 1 図 1 の図形を作るプログラムを作成せよ 但し ウィンドウの大きさは と し 座標の関係は図 2 に示すものとする 図 1 作成する図形 原点 (0,0) (280,0) (80,0) (180,0) (260,0) (380,0) (0,160) 図 2 座標関係 問 2

II Matlab Karel Švadlenka 2018 Contents

理工学図書館後期 LS 講習会 きれいなグラフを作ろう! gnuplot 入門

計算機シミュレーション

日向幹線新設工事に係る業務支援システム

パソコンで楽チン、電力管理3169編

グラフを作成

Microsoft PowerPoint - MATLABの使い方.ppt

コマンド入力による操作1(ロード、プロット、画像ファイル出力等)

頻出問題の解法 4. 絶対値を含む関数 4.1 絶対値を含む関数 絶対値を含む関数の扱い方関数 X = { X ( X 0 のとき ) X ( X <0 のとき ) であるから, 絶対値の 中身 の符号の変わり目で変数の範囲を場合分けし, 絶対値記号をはずす 例 y= x 2 2 x = x ( x

コンピュータリテラシ

> usdata01 と打ち込んでエンター キーを押すと V1 V2 V : : : : のように表示され 読み込まれていることがわかる ここで V1, V2, V3 は R が列のデータに自 動的につけた変数名である ( variable

Microsoft Word - 操作マニュアル-Excel-2.doc

Microsoft Word - Grspes…~…j…}…j…–…A…‰6.0.doc

初めてのプログラミング

memo

Microsoft Word - 簡単な計算と作図.doc

スライド 1

平成 年 月 7 日 ( 土 第 75 回数学教育実践研究会アスティ 45 ビル F セミナールーム A 札幌医科大学 年 P ab, を正の定数とする 平面上において ( a, を中心とする円 Q 4 C と (, b を中心とする円 C が 原点 O で外接している また P を円 C 上の点と

演習2

スライド 1

PowerPoint Presentation

医用工学概論  Medical Engineering (ME)   3年前期の医用工学概論実習と 合わせ、 医療の現場で使用されている 医用機器を正しく安全に使用するために必要な医用工学(ME)の 基礎知識を習得する。

ワープロソフトウェア

Microsoft Word - HOBO雨量専用説明書_v1.1.doc

Microsoft PowerPoint - 14Gnuplot.ppt

gnuplot の使い方 gnuplot は汎用的で しかも手軽に使えるプロッティング プログラムです 計算結果をグラフにするとき に非常に便利なので ぜひ覚えてください 1 gnuplot の始め方 終わり方 gnuplot の始め方は ターミナル上のプロンプトの後ろで gnuplot と打つだけ

JavaScriptで プログラミング

EGS4に対応した粒子軌跡と 計算体系の3次元表示ソフト

グラフ作成手順書

「統 計 数 学 3」

Microsoft PowerPoint - matlab10.ppt [互換モード]

データの作成方法のイメージ ( キーワードで結合の場合 ) 地図太郎 キーワードの値は文字列です キーワードの値は重複しないようにします 同じ値にする Excel データ (CSV) 注意キーワードの値は文字列です キーワードの値は重複しないようにします 1 ツールバーの 編集レイヤの選択 から 編

第9回 配列(array)型の変数

Microsoft PowerPoint - Robotics_13_review_1short.pptx

実験 5 CGI プログラミング 1 目的 動的にWebページを作成する手法の一つであるCGIについてプログラミングを通じて基本的な仕組みを学ぶ 2 実験 実験 1 Webサーバの設定確認と起動 (1)/etc/httpd/conf にある httpd.conf ファイルの cgi-bin に関する

スライド 1

Microsoft PowerPoint - 9.pptx

ToDo: 今回のタイトル

pp2018-pp9base

II - ( 02 ) 1,,,, 2, 3. ( ) HP,. 2 MATLAB MATLAB, C Java,,., MATLAB, Workspace, Workspace. Workspace who. whos. MATLAB, MATLAB Workspace. 2.1 Workspac

Microsoft PowerPoint - VBA解説1.ppt [互換モード]

学習指導要領

Microsoft Word - 415Illustrator

2 / 25 複数ソフトの組み合わせ テキストファイルを Excel で開く テキスト形式 (.txt) で保存したファイルを Excel で利用しましょう 第 14 講で保存した west.txt を Excel で開きます 1. Excel を起動します 2. [Office ボタ

JTrimで「さくらんぼ《を描く[下巻]

Taro-Basicの基礎・はじめに(公

Word編2 宛先の氏名を入力する職人編宛名を入力するための画面が表示されます 姓と名の間にスペースを入れて氏名を入力します ボタンをクリックして敬称を選びます [ 連名 情報 ] タブをクリックします 必要に応じて [ 名前 ] 欄をクリックして連名を入力します 3 宛先の住所を入力する [ 自宅

Word編Word編7 宛名欄 住所欄を調整する職人編5 差出人登録画面を表示する 住所録の登録が終了したら [ 差出人を作成 編集する ] をクリックし 宛名面を印刷 保存する 1 宛名面を印刷する [ 印刷 ] ボタンをクリックし [ 宛名印刷 ] 画面が表示され印刷範囲を指定し必要に応じて出受

505_切削オーバーレイ

manual_ezcap_edit

Create!Form V11 - Excel 出力設定

1セル範囲 A13:E196 を選択し メニューの データ - 並べ替え をクリック 並べ替え ダイアログボックスで 最優先されるキー から 年代 を選択し OK をクリック ( セル範囲 A13:E196 のデータが 年代 で並び替えられたことを確認する ) 2セル範囲 A13:E196 を選択し

02InDesign_img.indd

平成20年1月15日

Microsoft Word 売買操作マニュアルver.2.doc

きれいなグラフを作ろう!gnuplot 入門 1. 基本 1.1. プロット :test.plt plot x, sin(x) 1.2. データファイルのプロット 1:data.plt plot "data.dat" 1.3. データファイルのプロット 2:data2.plt plot "data2

サイボウズ Office 10「個人フォルダ」

PowerPoint プレゼンテーション

CG

Microsoft PowerPoint - 9.pptx

Microsoft Word - 平成サロン09年2月21日一筆箋作成.doc

Microsoft PowerPoint - R-intro-02.ppt

使用説明書(Windows)

1. 花形の模様枠を作る 1 JTim の アイコンをクリックして起動します 2 背景色を 黒 にします 表示 背景色 黒 OK します 3 250*250 の 白 で新規作成します ファイル 新規作成 横 250*250 * キャンバスの色白 OK 4 範囲 60 で 円形 フェードアウトします

KDC

MATLAB説明

Eschartマニュアル

2017年度 京都大・文系数学

実験指導書

1 対 1 対応の演習例題を解いてみた 微分法とその応用 例題 1 極限 微分係数の定義 (2) 関数 f ( x) は任意の実数 x について微分可能なのは明らか f ( 1, f ( 1) ) と ( 1 + h, f ( 1 + h)

PowerPoint プレゼンテーション

<907D945D F D C789C195CF8D5888EA97978CF68A4A97702E786C7378>

1999年度 センター試験・数学ⅡB

計算機プログラミング

操作説明書 AV-HS410 用イメージ転送ソフトウェア JAPANESE M0412TY0 -FJ VQT4K83

2 / 18 ページ 第 13 講データの活用とデータマップの作成 13-1 ホームページの保存 ホームページ (Web ページ ) に表示される様々な情報を ファイルとして保存することができます

2017年度 千葉大・理系数学

Chapter 版 Maxima を用いた LC のインピーダンス測定について [ 目的 ] 電気通信大学 先進理工学科の2 年次後期に実施される電気 電子回路実験において L,C のインピーダンス測定を実施している この実験項目について 無料ソフトの Maxima を用い

パソコン研修講座 ビデオスタジオ 7 講習会の流れ 1. どのような作品がつくれるのか紹介と説明 (10 分 ) 2. 今日作ってもらう映像の完成版を見る (4 分 ) 3. 実技 (60 分 - 休憩 10 分 -90 分 ) 実技の内容作ってもらう映像 学級紹介ビデオ ビデオ編集の流れ 1 キャ

CONTENTS マニュアルの表記... S01-02_01 1.DataNature Smart 全体概要図... S01-02_11 2. 基本操作... S01-02_ ジョブの作成... S01-02_21 加工条件設定... S01-02_21 Step1: 処理対象データの指

目次 1. ログイン 報告 ユーザ 病院 使用場所 通知先 材料データベース... 7 ご注意ください...12 JAN コードから材料データを返します マネージャーの情報変更 報告 CS

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

JavaプログラミングⅠ

PowerPoint プレゼンテーション

2014年度 筑波大・理系数学

C3 データ可視化とツール

Sheet2 に作成する表 問題 2 前問の成績表 (Sheet2) の各教科の順位の列の次に評価の列を作って 生徒ごとに各教科の評価をし なさい なお評価は 各教科 A(100~85) B(84~70) C(69~55) D(54 以下 ) とする 1.4 集中力度チェックテスト自分の集中力がどの

クイックスタートガイドデスクトップバージョン GeoGebra とは? ひとつの使いやすいパッケージになった, 動的数学ソフトウェアです すべての教育段階における学習や指導に使用できます 二次元および三次元の幾何 (geometry), 代数 (algebra), 表計算, グラフ, 解析, そして

Microsoft PowerPoint - lecture0610v05.pptx

情報システム設計論II ユーザインタフェース(1)

工程’S 9 ヘルプ Excelバーチャート(Sカーブ)

表計算ソフトの基礎 31 5 最小二 ( 自 ) 乗法 (Least squares method) 理工系の実験などでは, たいてい測定が行われる. ただし, 測定コストを減らすため, 粗い測定を行い, 得られた ( 誤差を含む ) 測定点群を説明することができる, 真の特性として何らかの関数 (

ギリシャ文字の読み方を教えてください

Transcription:

Matlab 講習会 目的 Matlab を用いて VICONや Winanalyze の座標データー 地面反力の分析必要な項目について習得する 本やヘルプに掲載されている情報を 実際に使用できる形で整理する 講習会 1 回目 (4 時間 ) 1. 行列操作について理解する 2. 時間軸を作る 3. エクセルデーターを取り込む 4. テキストデーターを取り込む 5. グラフの作成 6.1つのグラフに複数のグラフを出す 7. 計算によって新しい座標軸を作る 講習会 2 回目 (6 時間 ) 8. フィルターをかける 9. 速度を算出する 10. 合成速度を算出する 11. 最大値 最小値を求める 12. 時系列データをまとめる 13. データを出力する 14. 図表を出力する 15. スティックピクチャーを書く & 軌跡を描く 16. セグメントを書く &axis equal 縦横比をそろえる 17. 画面に出力するスティックピクチャーの数を減らす 18. 関節角度を算出する 19. 補間作業 20. 地面反力のサンプリングを下げる 1

1. 行列操作について理解する a1=[1 2 3] 行行列間にスペースを入れる a2=[1;2;3] 列行列間にセミコロンを入れる b1=[1 2 3 4 5]; セミコロンを入れると非表示 A=[1 2 3;1 2 3;1 2 3] 1 2 3 1 2 3 1 2 3 行 列 1 行目だけ取り出す A(1,:) 1 列目だけ取り出す A(:,1) 問題 Q1 3 行目だけ取り出す Q2 3 列目だけ取り出す 2~3 列目を取り出す A(:,2:3) 2~3 行列を取り出す A(2:3,2:3) 2

2. 時間軸を作る 時間軸を作る 1 秒間 120 コマであったら 1/120=0.0083 Time=0:0.0083:1 101 行のデータに,0.0083 刻みの時間軸を作るには DA=0:100 このままだと101の列行列になる DA=(0:100) A. 行の長さを調べる B. 最終行までの時間を計算する C. 時間軸を作る A LL=length(DA) B EndTime=LL*0.0083 C TIME=0:0.0083:EndTime 行が長くなってしまうので TIME=0:0.0083:EndTime-0.0083 のように書く別解 EndTime=((LL-1)*0.004) TIME=0:0.0083:EndTime べき乗 2.^3 2の3 乗 power(2,3) 2の3 乗 ゼロの行列がほしい場合 ZZZ=zeros(10,1) 1の行列がほしい場合 OOO=Ones(1,10) 3

3. エクセルデーターを取り込む clear all [DATA HEAD]=xlsread('Matlab1.xls'); と入力する DATA には 数値データが入る HEAD には ヘッダーが入る ( 重複ヘッダーがないか注意 ) 取り込んだデータを マーカーごとに変数にする II=strmatch('LASI:X,HEAD) 探したい文字は で囲むようにする HEAD( ヘッダー ) のなかに LASI:X が何行目にあるか探してくる (4 行目 ) LASI=DATA(:,II) (Field=DATA(:,4) と入力しているのと同じ ) 行はすべてほしいので : と入力する X Y Z のすべてほしい場合は LASI=DATA(:,ll:II+2) (Field=DATA(:,4:6) と入力しているのと同じ ) VICON を用いているときは 3 行ごと取り込むようにしている 慣れない場合は1 行ごと取り込む ( 計算によっては1 行ごと取り込んだ方が計算しやすいことも ) 位置座標の単位を ミリからメーターに変える ( 線速度などを出力するとき必要 ) LASI =DATA(:,ll:II+2)/1000 4

4. テキストデーターを取り込む LANK=dlmread('Read1-1.txt',' t',1,0); ヘッダーの部分は取り込めないので 1 と入力して2 行目以降を取り込む KNEE=dlmread('Read1-2.txt',' t',1,1); と入力すると 2 列目以降が取り込まれる LASI=dlmread('Read1-3.txt',' t',1,0); 5. グラフの作成 位置座標をプロットする 時間軸を作る LL=length(KNEE) TimeA=0:0.004:0.004*(LL-1) figure(1) plot(timea,knee(:,1),timea,knee(:,2),timea,knee(:,3)) タイトルを入れる X 軸タイトル Y 軸タイトル title( Knee ) で文字を挟む xlabel( Time(sec) ) ylabel( mm ) 凡例 ( はんれい ) legend( X, Y, Z ) plot の順番と対応させて書く 5

表示の範囲を設定する axis([0 0.15 -Inf Inf]) ( ) の中に [ ] を入力する はじめの2つが Xの最小値 最大値 残りの2つがYの最小値 最大値 軸の範囲を設定しない場合は 最小値には-Inf 最大値には Inf と入力 プロットの線 マークの種類を変更する線点 ( プロットシンボル ) 色の順で配列する k 黒 b 青 r 赤 g 緑 c シアン m マゼンダ X バツ O まる +プラス * アスタリクス s 正方形 dダイアモンド v 三角形 - 実線 : 点線 ; 鎖線 -- 点線 マーカーサイズの設定方法 plot(x,y, -ok, MarKerSize,2) MarkerSize 数字を変えることによって マーカーのサイズが変化する plot(time,lasi,'ok',time,lasif,'-k','markersize',2) 6

6.1 つのグラフに複数のグラフを出す 上下に並べる figure(1) subplot(2,1,1) plot(x,y,x1,y1) subplot(2,1,2) plot(x,y,x1,y1) 左右に並べる figure(2) subplot(1,2,1) plot(x,y,x1,y1) subplot(1,2,2) plot(x,y,x1,y1) 4 分割する figure(3) subplot(2,2,1) plot(x,y,x1,y1) subplot(2,2,2) plot(x,y,x1,y1) subplot(2,2,3) plot(x,y,x1,y1) subplot(2,2,4) plot(x,y,x1,y1) 7

7. 計算によって新しい座標軸を作る 両肩峰を結んだ点を作る (A-B)/2+B CSHO=((RSHO-LSHO)/2)+LSHO; 8. フィルターをかける フィルターの作成 [b,a]=butter(2,10/60); 4 次のバターワースフィルター ( ローパスフィルター ) 遮断周波数 /( ナイキスト周波数分析に用いた周波数 /2) フィルターをかける [b,a]=butter(2,10/60); LASIf=filtfilt(b,a,LASI); 8

9. 速度を算出する 位置座標 角度データ フィルター 速度 角速度計算 COMassM=COMass/1000; % 単位変換メートルからセンチに変える COMassm=filtfilt(b,a,COMassM); % フィルター 速度の計算方法 COMassV1=(-3*COMassm(1,:)+4*COMassm(2,:)-COMassm(3,:))/(1/60); COMassV2=(COMassm(3:LL,:)-COMassm(1:LL-2,:))/(1/60); COMassV3=(COMassm(LL-2,:)-4*COMassm(LL-1,:)+3*COMassm(LL,:))/(1/60); COMassV=[COMassV1;COMassV2;COMassV3]; 10. 合成速度を算出する CGV= sqrt(power(comassv(:,3),2)+power(comassv(:,2),2),power(comassv(:,1),2)); 9

11. 最大値 最小値を求める [CGVmax CGVmaxTime]=max(CGV) CGVmax 最大値 CGVmaxTime 最大値出現時のフレーム [CGVmax CGVmaxTime]=min(CGV) 最小値を求める 12. 時系列データをまとめる EX=[COMass LANK LASI Force Field] 13. データを出力する wk1write('matlab1',ex,1,0) 1 行目をあけたい場合 ( ヘッダーを作る場合 ) は 1,0 と入力する 14. 図表を出力する saveas(figure(1),'matlab1','tif') bmp Windows ビットマップ jpg JPEG イメージ tif TIFF イメージ 10

15. スティックピクチャーを書く 図を重ねあわせるコマンド (hold on) figure(1) plot(time,lkne(:,3)) hold on plot(time,lkne(:,2)) 軌跡を描く 膝の軌跡をプロットする figure(1) hold on for I=1:LL plot(lkne(i,2),lkne(i,3),'ok') end 膝と骨盤の軌跡をプロットする figure(1) hold on for I=1:LL plot(lkne(i,2),lkne(i,3),'ok') plot(lp(i,2),lp(i,3),'hk') end figure(1) hold on for I=1:LL plot(lkne(i,2),lkne(i,3),'ok') plot(lp(i,2),lp(i,3),'hk') plot(lank(i,2),lank(i,3),'vk') end 11

16. セグメントを書く 結線したい A と B を X 座標では [(AX),(BX)] Y 座標では [(AY),(BY)] と入力する plot( X, Y ) plot( [ (AX),(BX) ], [ (AY),(BY) ] X 座標 Y 座標 下腿のセグメントを作る for I=1:LL plot([lkne(i,2),lank(i,2)],[lkne(i,3),lank(i,3)],'k') end 大腿のセグメントを作る for I=1:LL plot([lkne(i,2),lank(i,2)],[lkne(i,3),lank(i,3)],'k') plot([lp(i,2),lkne(i,2)],[lp(i,3),lkne(i,3)],'k') end axis equal 縦横比をそろえる --K :K 結線の線の種類を変更することができる 問題 Q1 つま先をプロットする Q2 外果からつま先を結線してみる for I=1:LL plot(ltoe(i,2),ltoe(i,3),'*k') plot([lank(i,2),ltoe(i,2)],[lank(i,3),ltoe(i,3)],'k') end axis equal Q3 肩峰をプロットする Q4 肩峰と骨盤を結線する 12

17. 画面に出力するスティックピクチャーの数を減らす for 文を変更する StickFrame=3 for I=1:StickFrame:LL figure(2) hold on StickFrame=2 for I=1:StickFrame:LL plot(lkne(i,2),lkne(i,3),'ok') plot(lank(i,2),lank(i,3),'vk') plot(lp(i,2),lp(i,3),'hk') plot(ltoe(i,2),ltoe(i,3),'*k') plot([lkne(i,2),lank(i,2)],[lkne(i,3),lank(i,3)],'k') plot([lp(i,2),lkne(i,2)],[lp(i,3),lkne(i,3)],'--k') plot([lank(i,2),ltoe(i,2)],[lank(i,3),ltoe(i,3)],'k') end axis equal 13

18. 関節角度を算出する 関節角度は 2つのセグメント角度を求め その2つの角度を加算減算することによって求める 膝であれば 地面に対する大腿部セグメント角度と下腿部セグメント角度を求め その2つを加算して 360 度から引くと関節角度が算出される 1 動くマーカーの座標を求める ( 原点に対して動くマーカー )-( 原点になるマーカー ) 2 動くマーカーの座標を 関数 atan2( アークタンジェンド ) に入力する atan(y 座標, X 座標 ) 14

UPPLeg=LP-LKNE; LOWLeg=LANK-LKNE; kk1=atan2(uppleg(:,3),uppleg(:,2)); LKNEag1=(kk1*180)/pi; % ラジアン 角度変換 kk2=atan2(lowleg(:,3),lowleg(:,2)); LKNEag2=(kk2*180)/pi; 膝関節角度 =360-( 大腿部セグメント角度 - 下腿部セグメント角度 ) LKNEag=360-(LKNEag1-LKNEag2); 伸展位 180 度 問題 Q1 足関節角度を求める Q2 股関節角度を求める 15

19. 補間作業 規格化する (3 次スプライン補間 ) 規格化したい範囲を 100 等分する 今回はすべての範囲を 100% に規格化する MaxT=max(Time); 最終フレームの時間を求める Inter=MaxT/100; その時間を100 等分する STime=0:Inter:MaxT; 0~100% までの時間を作る LKNEags=spline(Time, LKNEag,STime); 規格化した結果 =spline( 元の時間軸, 規格化したい変数 規格化時の時間軸 ) 直線補間地面反力を補間するときはこちらの方がよい場合もある LKNEagL=interp1(Time,LKNEag,STime,'linear'); 20. 地面反力のサンプリングを下げる ForceZ=decimate(ForceZ,9); サンプリングを9 分の1にする 16