如何将此代码转换为 for 循环,以便可以添加更多力和力矩?这是很多代码,它基本上计算单位向量并找到 x 方向、y 方向和 z 方向上的力的总和,并对矩做同样的事情。
这仅适用于一种特殊情况,所以我想把它放在一个 for 循环中,这样当施加新的力量时,它们就会被考虑在内。
任何朝着正确方向的帮助或推动都将是巨大的帮助!提前致谢。
load ('inputdata.mat')
A= zeros(6,6);
B= zeros (6,1);
% Calculate Force in x,y,z direction, sums them and puts them in the B
% vector positions 1,2,3
NF1=((ForceDir(1,2))^2+(ForceDir(1,3))^2+(ForceDir(1,4))^2)^(1/2);
F1i=(ForceDir(1,2)/NF1)* ForceDir(1,1);
F1j=(ForceDir(1,3)/NF1)* ForceDir(1,1);
F1k=(ForceDir(1,4)/NF1)*ForceDir(1,1);
NF2= ((ForceDir(2,2))^2+(ForceDir(2,3))^2+(ForceDir(2,4))^2)^(1/2);
F2i=(ForceDir(2,2)/NF2)* ForceDir(2,1);
F2j=(ForceDir(2,3)/NF2)* ForceDir(2,1);
F2k=(ForceDir(2,4)/NF2)* ForceDir(2,1);
B(1,1)= F1i+F2i; %External Force in x
B(2,1)= F1j+F2j; %External Force in y
B(3,1)= F1k+F2k; %External Force in z
% Calculate Moments in x,y,z direction and puts them in B vector
% position 3,4,5
unitvectorForce1=[F1i F1j F1k];
MomentByForce1= cross(ForceCoor(1,:),unitvectorForce1);
unitvectorForce2= [F2i F2j F2k];
MomentByForce2= cross(ForceCoor(2,:),unitvectorForce2);
MomentNormal=((DirMoment(1,2))^2+(DirMoment(1,3))^2+(DirMoment(1,4))^2)^(1/2);
M1i= (DirMoment(1,2)/MomentNormal)*DirMoment(1,1);
M1j= (DirMoment(1,3)/MomentNormal)*DirMoment (1,1);
M1k= (DirMoment(1,4)/MomentNormal)*DirMoment(1,1);
unitvectorMoment= [M1i M1j M1k];
B(4,1)= MomentByForce1(1)+MomentByForce2(1)+ unitvectorMoment(1)
B(5,1)= MomentByForce1(2)+MomentByForce2(2)+ unitvectorMoment(2)
B(6,1)= MomentByForce1(3)+MomentByForce2(3)+ unitvectorMoment(3)