ヒートマップに関して
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
cdata = [肩の角度,肘の角度,sin(肩の角度ー肘の角度)×cos(肩の角度ー肘の角度)]
が417×3の行列になっており,横軸を肩の角度,縦軸を肘の角度にしたときに,sin(肩の角度ー肘の角度)×cos(肩の角度ー肘の角度)の値に対してヒートマップを作成したいのですが,どのように直せば良いでしょうか
global uLink
global fname
global s%フレームの始まり
global f%フレームの終わり
s = 1300;
f = 1400;
fname = 'xsens.xlsx'
uLink(2).angle = resample_ZXY(2)
uLink(3).angle = resample_ZXY(3)
l = size(uLink(2).angle(:,2),1);
for i = 1:l
m(i) = sin(uLink(2).angle(i,2)-uLink(3).angle(i,3))*cos(uLink(2).angle(i,2)-uLink(3).angle(i,3))
end
cdata = [uLink(2).angle(:,2),uLink(3).angle(:,3),m]
imagesc(0:10:90,180:-20:0,cdata);
colormap hot;
colorbar;
axis xy;
daspect([1 1 1]);
関節角度の呼び出し関数
function angle = resample_ZXY(fname,j)
global s
global f
ang = readtable(fname,"Sheet","Joint Angles ZXY");
ang = ang(s:f,:);
if j==0
angle = 0;
elseif j==2
%shoulder
%original
ori_abd = ang.RightShoulderAbduction_Adduction;
ori_IE = ang.RightShoulderInternal_ExternalRotation;
ori_FE = ang.RightShoulderFlexion_Extension;
%resample
abd = interp1(ori_abd, 1:240/1000:length(ori_abd),"spline");
IE = interp1(ori_IE, 1:240/1000:length(ori_IE),"spline");
FE = interp1(ori_FE, 1:240/1000:length(ori_FE),"spline");
angle = [abd',IE',FE'];
elseif j==3
%elbow
%original
ori_EU = ang.RightElbowUlnarDeviation_RadialDeviation;
ori_PS = ang.RightElbowPronation_Supination;
ori_FE = ang.RightElbowFlexion_Extension;
%resample
EU = interp1(ori_EU, 1:240/1000:length(ori_EU),"spline");
PS = interp1(ori_PS, 1:240/1000:length(ori_PS),"spline");
FE = interp1(ori_FE, 1:240/1000:length(ori_FE),"spline");
angle = [EU',PS',FE'];
end
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1578326/image.png)
0 Kommentare
Antworten (1)
Atsushi Ueno
am 29 Dez. 2023
下記箇所で、変数mを初期化せずに要素を追加しています。
その結果、m は 1 行 417 列の行ベクトルになり、uLink(n).angle(:,m) (417 行 1 列)とサイズが揃いません。
l = size(uLink(2).angle(:,2),1);
for i = 1:l
m(i) = sin(uLink(2).angle(i,2)-uLink(3).angle(i,3))*cos(uLink(2).angle(i,2)-uLink(3).angle(i,3))
end
m = sin(uLink(2).angle(:,2)-uLink(3).angle(:,3)) .* cos(uLink(2).angle(:,2)-uLink(3).angle(:,3));
0 Kommentare
Siehe auch
Kategorien
Mehr zu データ分布プロット finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!