matlab中要求向量n1和n2的叉乘,但n1中有个数组变量,所以cross(n1,n2)出错size不一样,theta=0:0.1*pi:2*pi;x=(r-t)*cos(theta);y=(r-t)*sin(theta);z=sqrt(R^2-((r-t).*sin(theta)-e).^2)./sin(alpha)-(r-t).*cos(theta)./tan(alpha)
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/17 00:18:05
matlab中要求向量n1和n2的叉乘,但n1中有个数组变量,所以cross(n1,n2)出错size不一样,theta=0:0.1*pi:2*pi;x=(r-t)*cos(theta);y=(r-t)*sin(theta);z=sqrt(R^2-((r-t).*sin(theta)-e).^2)./sin(alpha)-(r-t).*cos(theta)./tan(alpha)
matlab中要求向量n1和n2的叉乘,但n1中有个数组变量,所以cross(n1,n2)出错size不一样,
theta=0:0.1*pi:2*pi;
x=(r-t)*cos(theta);
y=(r-t)*sin(theta);
z=sqrt(R^2-((r-t).*sin(theta)-e).^2)./sin(alpha)-(r-t).*cos(theta)./tan(alpha);
n1=[x*(cos(alpha))^2+z*sin(alpha)*cos(alpha) y-e x*sin(alpha)*cos(alpha)+z*(sin(alpha))^2];
n2=[x y 0];
t=cross(n1,n2)
matlab中要求向量n1和n2的叉乘,但n1中有个数组变量,所以cross(n1,n2)出错size不一样,theta=0:0.1*pi:2*pi;x=(r-t)*cos(theta);y=(r-t)*sin(theta);z=sqrt(R^2-((r-t).*sin(theta)-e).^2)./sin(alpha)-(r-t).*cos(theta)./tan(alpha)
最后三行改成
n1=[x*(cos(alpha))^2+z*sin(alpha)*cos(alpha); y-e; x*sin(alpha)*cos(alpha)+z*(sin(alpha))^2];
n2=[x; y; zeros(1,length(x))];
t=cross(n1,n2)