フィルターのクリア

How to plot sym array in given value

2 ビュー (過去 30 日間)
동욱
동욱 2023 年 10 月 19 日
コメント済み: 동욱 2023 年 10 月 20 日
syms a1 a2 a4 a5;
d1=100;d2=250;d3=50;d4=250;d5=100;
% define transformation matrix
T_01=[sin(a1) 0 cos(a1) 0; -cos(a1) 0 sin(a1) 0; 0 -1 0 d1; 0 0 0 1];
T_12=[cos(a2) 0 sin(a2) d2*cos(a2); sin(a2) 0 -cos(a2) d2*sin(a2); 0 1 0 0; 0 0 0 1];
T_23=[-1 0 0 0; 0 0 1 0; 0 1 0 d3; 0 0 0 1];
T_34=[cos(a4) -sin(a4) 0 d4*cos(a4); sin(a4) cos(a4) 0 d4*sin(a4); 0 0 1 0; 0 0 0 1];
T_4H=[cos(a5) -sin(a5) 0 d5*cos(a5); sin(a5) cos(a5) 0 d5*sin(a5); 0 0 1 0; 0 0 0 1];
% Calculate center of E.E. frame
T_0H=T_01*T_12*T_23*T_34*T_4H;
P = transpose([0 0 0 1]);
P1_0=T_0H*P;
% give value
a1 = 0:pi/1000:pi/2;
a2 = 0:-pi/500:-pi;
a4 = 0:pi/1000:pi/2;
a5 = 0:-pi/1000:-pi/2;
%plot 501 point
for i=1:1:501
a1(i);a2(i);a4(i);a5(i);
plot3(P1_0(1),P1_0(2),P1_0(3));
end
Error using plot3
Data must be numeric, datetime, duration, categorical, or an array convertible to double.
I want to cnovert P1_0 to 4x1x501 double array, so can plot path in 3d space. How can i do that? Thank for your help.

採用された回答

Walter Roberson
Walter Roberson 2023 年 10 月 19 日
syms a1 a2 a4 a5;
d1=100;d2=250;d3=50;d4=250;d5=100;
% define transformation matrix
T_01=[sin(a1) 0 cos(a1) 0; -cos(a1) 0 sin(a1) 0; 0 -1 0 d1; 0 0 0 1];
T_12=[cos(a2) 0 sin(a2) d2*cos(a2); sin(a2) 0 -cos(a2) d2*sin(a2); 0 1 0 0; 0 0 0 1];
T_23=[-1 0 0 0; 0 0 1 0; 0 1 0 d3; 0 0 0 1];
T_34=[cos(a4) -sin(a4) 0 d4*cos(a4); sin(a4) cos(a4) 0 d4*sin(a4); 0 0 1 0; 0 0 0 1];
T_4H=[cos(a5) -sin(a5) 0 d5*cos(a5); sin(a5) cos(a5) 0 d5*sin(a5); 0 0 1 0; 0 0 0 1];
% Calculate center of E.E. frame
T_0H=T_01*T_12*T_23*T_34*T_4H;
P = transpose([0 0 0 1]);
P1_0=T_0H*P;
% give value
A1 = 0:pi/1000:pi/2;
A2 = 0:-pi/500:-pi;
A4 = 0:pi/1000:pi/2;
A5 = 0:-pi/1000:-pi/2;
ssP1_0 = P1_0(1:3);
vars = [a1, a2, a4, a5];
%plot 501 point
for i=1:1:501
temp = double(subs(ssP1_0, vars, [A1(i), A2(i), A4(i), A5(i)]));
plot3(temp(1), temp(2), temp(3), '.');
hold on
end
  2 件のコメント
Walter Roberson
Walter Roberson 2023 年 10 月 19 日
syms a1 a2 a4 a5;
d1=100;d2=250;d3=50;d4=250;d5=100;
% define transformation matrix
T_01=[sin(a1) 0 cos(a1) 0; -cos(a1) 0 sin(a1) 0; 0 -1 0 d1; 0 0 0 1];
T_12=[cos(a2) 0 sin(a2) d2*cos(a2); sin(a2) 0 -cos(a2) d2*sin(a2); 0 1 0 0; 0 0 0 1];
T_23=[-1 0 0 0; 0 0 1 0; 0 1 0 d3; 0 0 0 1];
T_34=[cos(a4) -sin(a4) 0 d4*cos(a4); sin(a4) cos(a4) 0 d4*sin(a4); 0 0 1 0; 0 0 0 1];
T_4H=[cos(a5) -sin(a5) 0 d5*cos(a5); sin(a5) cos(a5) 0 d5*sin(a5); 0 0 1 0; 0 0 0 1];
% Calculate center of E.E. frame
T_0H=T_01*T_12*T_23*T_34*T_4H;
P = transpose([0 0 0 1]);
P1_0=T_0H*P;
% give value
A1 = 0:pi/1000:pi/2;
A2 = 0:-pi/500:-pi;
A4 = 0:pi/1000:pi/2;
A5 = 0:-pi/1000:-pi/2;
ssP1_0 = P1_0(1:3);
vars = {a1, a2, a4, a5};
%plot 501 point
temp = double(subs(ssP1_0, vars, {A1, A2, A4, A5}));
plot3(temp(1,:), temp(2,:), temp(3,:));
동욱
동욱 2023 年 10 月 20 日
I didn’t know command like “subs”. I really appreciate that. Thanks for assistance

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCalculus についてさらに検索

製品


リリース

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by