matlab请问我这个程序为什么不循环我要计算一个机械结构的工作空间,首先生成一个2行10000列的矩阵,矩阵的每一列代表一个位姿,然后把符合要求的位姿挑出来生成一个y矩阵,但是结果y矩阵里
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 16:57:52
matlab请问我这个程序为什么不循环我要计算一个机械结构的工作空间,首先生成一个2行10000列的矩阵,矩阵的每一列代表一个位姿,然后把符合要求的位姿挑出来生成一个y矩阵,但是结果y矩阵里
matlab请问我这个程序为什么不循环
我要计算一个机械结构的工作空间,首先生成一个2行10000列的矩阵,矩阵的每一列代表一个位姿,然后把符合要求的位姿挑出来生成一个y矩阵,但是结果y矩阵里什么也没有
xx=linspace(-70/180*pi,70/180*pi,100);
yy=xx;
v=cell(2,10000);
u=cell2mat(v);
ee=1;
ff=1;
for ii=1:1:100
for jj=1:1:100
u(1,ee)=xx(1,ii);
u(2,ff)=yy(1,jj);
ff=ff+1;
ee=ee+1;
end
end
a=105/180*pi;%α角
a01=[cos(a) 0 sin(a);0 1 0;-sin(a) 0 cos(a)];
a02=[cos(a/2) -sqrt(3)/2 cos(a/2);-sqrt(3)*cos(a/2) -1/2 -sqrt(3)*sin(a/2);sin(a) 0 -cos(a)];
a03=[cos(a/2) sqrt(3)/2 sin(a/2);sqrt(3)*cos(a/2) -1/2 sqrt(3)*sin(a/2);sin(a) 0 -cos(a)];
I=[1;0;0];%x轴初始方向
I1=a01*I;
I2=a02*I;
I3=a03*I;
M=[0;0;1];%z轴初始方向
s=size(u);
j=1;
for i=1:s(1,2)
R1=[1 0 0;0 cos(u(1,i)) -sin(u(1,i));0 sin(u(1,i)) cos(u(1,i))];
R2=[cos(u(2,i)) 0 sin(u(2,i));0 1 0;-sin(u(2,i)) 0 cos(u(2,i))];
R=R1*R2;
M1=R*M;%摄像头的方向
M2=-M1;%后开孔的方向
the1=acos(dot(I1,M1)/(norm(I1)*norm(M1)));
the2=acos(dot(I2,M1)/(norm(I2)*norm(M1)));
the3=acos(dot(I3,M1)/(norm(I3)*norm(M1)));
gam1=acos(dot(I1,M2)/(norm(I1)*norm(M2)));
gam2=acos(dot(I2,M2)/(norm(I2)*norm(M2)));
gam3=acos(dot(I3,M2)/(norm(I3)*norm(M2)));
if the1
matlab请问我这个程序为什么不循环我要计算一个机械结构的工作空间,首先生成一个2行10000列的矩阵,矩阵的每一列代表一个位姿,然后把符合要求的位姿挑出来生成一个y矩阵,但是结果y矩阵里
我建议你看看j的值,如果为1的话,说明没有找到符合条件的位姿.