我创建了两个函数:frame
和t1
。第一个(为简便起见,我在这里用eye
替换了某个矩阵)返回三个3维向量。
function [frames] = frame(a1,a2,a3)
L = a1*a2*a3*eye(3);
frames(1,:)= L*([1,0,0])';
frames(2,:)=L*([0,1,0])';
frames(3,:)=L*([0,0,1])';
end
第二个函数采用两个标量(B
,phi1
)和三个向量(通过矩阵Frame
)作为输入,并返回另一个:
function [t1] = t1(B,Frame,phi1)
ex=Frame(1,:);
ey=Frame(2,:);
ez=Frame(3,:);
t1 = -sin(phi1)*ex - cos(B)*cos(phi1)*ey + cos(phi1)*sin(B)*ez ;
end
当我想以phi1
或B
为向量进行绘图或进行任何操作时,显然我会遇到问题,因为sin(phi1)*ex
之类的词最终会出现错误的尺寸。用sin(phi1).*ex
替换它们显然也是错误的,因为ex
的尺寸总是3,而sin(phi1)
的尺寸是phi1
。
示例:
phi1=linspace(0,2*pi);
plot(phi1,t1(pi/2,frame(1,1,1),phi1))
。
Error using *
Incorrect dimensions for matrix multiplication. Check that the number of columns in the first matrix matches the
number of rows in the second matrix. To perform elementwise multiplication, use '.*'.
在许多其他实例中遇到的此问题有什么解决方法?