Index exceeds the number of array elements (0).
Afficher commentaires plus anciens
Hey everyone. I need help with my code. The code worked fine when I only had 3 joints, but I needed to add a 4th joint and when I did that I started to get the error for T4 in line 40. Would someone please help! Thank you in advance:
clear;
clc;
disp('Joint 1');
disp('==================================');
angle1 = input('Please keyin theta_1 (degree): ');
d1 = input('Please keyin distance 1 (d): ');
al1 = input('Please keyin alpha_1 (degree): ');
disp('Joint 2');
disp('==================================');
angle2 = input('Please keyin theta_2 (degree): ');
d2 = input('Please keyin distance 2 (d): ');
al2 = input('Please keyin alpha_2 (degree): ');
disp('Joint 3');
disp('==================================');
angle3 = input('Please keyin theta_3 (degree): ');
d3 = input('Please keyin distance 3 (d): ');
al3 = input('Please keyin alpha_3 (degree): ');
disp('Joint 4');
disp('==================================');
angle4 = input('Please keyin theta_4 (degree): ');
d4 = input('Please keyin distance 4 (d): ');
al4 = input('Please keyin alpha_4 (degree): ');
theta1 = 0:angle1/100:angle1;
theta2 = 0:angle2/100:angle2;
theta3 = 0:angle3/100:angle3;
L = d2:(d3-d2)/100:d3;
framemax = 100;
M=moviein(framemax);
set(gcf,'Position',[100 100 640 480]);
for k = 1:framemax
T1=RobotConv(theta1(k), d1, 0, al1);
T2=RobotConv(theta2(k), d2, 0, al2);
T3=RobotConv(theta3(k), d3, 0, al3);
T4=RobotConv(0, L(k), 0, 0);
p0 = [0 0 0];
p1 = RobotPosition(T1);
p2 = RobotPosition(T1*T2);
p3 = RobotPosition(T1*T2*T3);
p4 = RobotPosition(T1*T2*T3*T4);
figure(1)
X = [p0(1) p1(1) p2(1) p3(1) p4(1)];
Y = [p0(2) p1(2) p2(2) p3(2) p4(2)];
Z = [p0(3) p1(3) p2(3) p3(3) p4(3)];
subplot(221),plot3(X,Y,Z,'o-')
axis([-10 10 -10 10 0 10]);
grid
subplot(222),plot(X,Y,'o-')
axis([-10 10 -10 10]);
title('X-Y')
grid
subplot(223),plot(X,Z,'o-')
axis([-10 10 0 10]);
title('X-Z')
grid
subplot(224),plot(Y,Z,'o-')
axis([-10 10 0 10]);
title('Y-Z')
grid
M(k) = getframe(gcf);
end
Réponse acceptée
Plus de réponses (1)
G A
le 7 Mar 2020
lengths of L and framemax must be equal
try
L = d2:(d3-d2)/100:d3;
framemax = length(L);
Catégories
En savoir plus sur Matrix Indexing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!