Fix "index exceeds number of array elements"
2 次查看(过去 30 天)
显示 更早的评论
%% THIS IS MY CODE TO Solve HW 4
%% Clear memory
close all
clear all
clc
%%Given length of link
%L1=ground L2=crank L3=coupler L4=output
L1=[6 7 3 8 8 5 6]
L2=[2 9 10 5 5 8 8]
L3=[7 3 6 7 8 8 8]
L4=[9 8 8 6 6 9 9]
theta_x=[30 85 45 25 75 15 25]
xsize=7; %size of array
for i=1:xsize
theta_2(i)=theta_x(i)
end
%%find theta angle
maxangle=90
for j=theta_x
s(j)=L1(j)^2+L2(j)^2-2*L1(j)*L2(j)*cos(theta_2(j))
mu(j)=acos((s(j)-L3(j)^2-L4(j)^2)/(-2*L3(j)*L4(j)));
if (mu(j)>maxangle)
mu(j)=mu(j)-90
end
end
0 个评论
采纳的回答
Simon Chan
2021-9-20
j is going to be the index and hence theta_x should not be use
Try the following:
for j=1:length(theta_x)
s(j)=L1(j)^2+L2(j)^2-2*L1(j)*L2(j)*cos(theta_2(j))
mu(j)=acos((s(j)-L3(j)^2-L4(j)^2)/(-2*L3(j)*L4(j)));
if (mu(j)>maxangle)
mu(j)=mu(j)-90
end
end
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!