作业帮 > 综合 > 作业

怎么把matlab中FOR循环得到的值保存到矩阵中

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 03:34:53
怎么把matlab中FOR循环得到的值保存到矩阵中
syms r Wa Wb Vz a b h Pz e1x e1y e1z D11 D21 D31 F11 F21 F31
d1=[25.5;-14.75;0;1]; % 相对于旋转环的坐标系
f1=[27.3;-4.8;84.5;1]; % 相对于底座坐标系
Ohz=[0;0;84.5;1]; % 相对于底座坐标系
i=0;
for t=0:0.1:0.5
i=i+1;
r=pi*t;
a=6*sin(0.785*t)*pi/180;
b=6*cos(0.785*t)*pi/180;
h=2*sin(0.785*t);
TA=[1 0 0 0;
0 cos(a) -sin(a) 0;
0 sin(a) cos(a) 0;
0 0 0 1];
TB =[cos(b),-sin(a)*sin(b),cos(a)*sin(b), 0;
sin(a)*sin(b),cos(a)^2 + cos(b)*sin(a)^2, cos(a)*sin(a) - cos(a)*cos(b)*sin(a), 0;
-cos(a)*sin(b), cos(a)*sin(a) - cos(a)*cos(b)*sin(a),cos(b)*cos(a)^2 + sin(a)^2, 0;
0, 0, 0, 1];
TZ=[1 0 0 0;
0 1 0 0;
0 0 1 55+h;
0 0 0 1]; %h=Vz*t; Pz=(15)H+h H是初始时上下平台的距离
Tr=[cos(r) -sin(r) 0 0;
sin(r) cos(r) 0 0;
0 0 1 0;
0 0 0 1];
T=TZ*TB*TA*Tr;
D1=T*d1;
F1=Tr*f1;
end
怎么把D1 F1每次for循环最后的值保存起来
而不是只得到最后一个
D1(t*10+1)=T*d1;
F1(t*10+1)=Tr*f1;
再问: 不对
再答: syms r Wa Wb Vz a b h Pz e1x e1y e1z D11 D21 D31 F11 F21 F31

d1=[25.5;-14.75;0;1]; % 相对于旋转环的坐标系
f1=[27.3;-4.8;84.5;1]; % 相对于底座坐标系
Ohz=[0;0;84.5;1]; % 相对于底座坐标系
i=0;
for t=0:0.1:0.5
i=i+1;

r=pi*t;
a=6*sin(0.785*t)*pi/180;
b=6*cos(0.785*t)*pi/180;
h=2*sin(0.785*t);

TA=[1 0 0 0;
0 cos(a) -sin(a) 0;
0 sin(a) cos(a) 0;
0 0 0 1];
TB =[cos(b),-sin(a)*sin(b),cos(a)*sin(b), 0;
sin(a)*sin(b),cos(a)^2 + cos(b)*sin(a)^2, cos(a)*sin(a) - cos(a)*cos(b)*sin(a), 0;
-cos(a)*sin(b), cos(a)*sin(a) - cos(a)*cos(b)*sin(a),cos(b)*cos(a)^2 + sin(a)^2, 0;
0, 0, 0, 1];
TZ=[1 0 0 0;
0 1 0 0;
0 0 1 55+h;
0 0 0 1]; %h=Vz*t; Pz=(15)H+h H是初始时上下平台的距离
Tr=[cos(r) -sin(r) 0 0;
sin(r) cos(r) 0 0;
0 0 1 0;
0 0 0 1];

T=TZ*TB*TA*Tr;

D1(:,i)=T*d1;
F1(:,i)=Tr*f1;

end