Fix "index exceeds number of array elements"
2 views (last 30 days)
Show older comments
JAKE WISNIEWSKI
on 20 Sep 2021
Commented: JAKE WISNIEWSKI
on 20 Sep 2021
%% 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 Comments
Accepted Answer
Simon Chan
on 20 Sep 2021
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
More Answers (0)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!