Error in my code

3 vues (au cours des 30 derniers jours)
Shin Lin
Shin Lin le 28 Avr 2023
I already try multiple time to solve the error but failed, can someone help me on this?
Parse error: Incorrect use of '=' operator. Assign a value to a variable using '=' and compare values for equality using '=='. Function 'Inverse_kinematics' (#24.201.202), line 4, column 3:
My code as below:
function [theta1d,theta2d,theta3d,theta4d,theta5d,theta6d,theta7d,theta8d,theta9d,theta10d,theta11d,theta12d,theta13d,theta14d] = inverse_kinematics(ad,bd,cd,dd,ed,fd,gd,hd,id,jd,kd,ld,md,nd)
11=1;
12=1;
theta2d= acos((ad^2+bd^2-11^2-12^2)/(2*11*12));
theta1d= atan((bd/ad)-atan((12*sin(theta2d))/(11+12*cos(theta2d))));
21=1;
22=1;
23=1;
theta5d= acos((cd^2+dd^2-21^2-22^2)/(2*21*22));
theta4d= atan((dd/cd)-atan((22*sin(theta5d))/(21+22*cos(theta5d))));
theta3d= acos((ed^2+dd^2-21^2-23^2)/(2*21*23));
31=1;
32=1;
33=1;
theta8d= acos((fd^2+gd^2-31^2-32^2)/(2*31*32));
theta7d= atan((gd/fd)-atan((32*sin(theta8d))/(31+32*cos(theta8d))));
theta6d= acos((hd^2+gd^2-31^2-33^2)/(2*31*33));
41=1;
42=1;
43=1;
theta9d= acos((id^2+jd^2-41^2-42^2)/(2*41*42));
theta10d= atan((jd/id)-atan((42*sin(theta9d))/(41+42*cos(theta9d))));
theta11d= acos((kd^2+jd^2-41^2-43^2)/(2*41*43));
51=1;
52=1;
53=1;
theta12d= acos((ld^2+md^2-51^2-52^2)/(2*51*52));
theta13d= atan((md/ld)-atan((52*sin(theta12d))/(51+52*cos(theta12d))));
theta14d= acos((nd^2+md^2-51^2-53^2)/(2*51*53));
  1 commentaire
Dyuman Joshi
Dyuman Joshi le 28 Avr 2023
Why are you assinging a number to another number?

Connectez-vous pour commenter.

Réponses (2)

Nithin Kumar
Nithin Kumar le 28 Avr 2023
Hi Shin,
I understand that you are facing an issue while using "=" operator. The "Parse error: Incorrect use of '=' operator, assign a value to the variable using '=' operator" occurs when you try to assign a constant to an another constant.
For more information regarding the use of "=" operator, kindly refer Assigning values to a variable.
For more information regarding the equality "==" operator, kindly refer Equality operator.
I hope it helps.

Image Analyst
Image Analyst le 28 Avr 2023
You can't do this:
51=1;
52=1;
53=1;
Fifty one is NOT one, and it makes absolutely no sense to try to send a constant number like 1 into (and replacing) another constant number such as 51. What is your intent there?

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by