Using parametric equations in terms of theta1 and theta2 to plot a point A for a range of angles
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Raphael Aubry
le 23 Fév 2019
Commenté : Raphael Aubry
le 1 Mar 2019
I am trying to write a code that uses two parametric equations of x and y, which depend on the variables theta1 and theta2. Then I have to produce a plot of x Vs y for a range of values of theta1 and theta2. I am stuck how can I do this?
Bellow is my current code to display the coordinate of this point defined by the parametric equations a and b (btw this code doesn't work for reasons that I do not understand). Now I have to use these functions to produce an array that will plot the x,y coordinates over a range of values of theta1 (20 to 80 deg in increments of 0,5) and of theta2 (90 to 30 deg in increments if 0,5).
Thanks in advance for any help! Started Matlab a few weeks ago :) (I attached a screenshot of the question)
n1 = input('Enter θ1: ');
n2 = input('Enter θ2: ');
function a = first_calc(n1,n2)
a = 0.6*cosd(n1) + 0.2*cosd(n1-n2);
end
function b = second_calc(n1,n2)
b = 0.6*sind(n1) + 0.2*sind(n1-n2);
end
fprintf('The value for x is %g, and that of y is g%\n' a,b);
0 commentaires
Réponse acceptée
Krishna Zanwar
le 26 Fév 2019
Hey Raphael,
In this case you have defined a function but not called it in your script and so you are getting an error while printing the a and b variables.
You can just call the function in your script as
a = first_calc(n1,n2);
b = second_calc(n1,n2);
Secondly to create an array –
Theta1=20:0.5:80;
Theta2=90:-0.5:30;
6 commentaires
Krishna Zanwar
le 1 Mar 2019
I meant just put this in the script .
theta1=20:0.5:80;
theta2=90:-0.5:30;
a = 0.6*cosd(theta1) + 0.2*cosd(theta1-theta2);
b = 0.6*sind(theta1) + 0.2*sind(theta1-theta2);
plot(a,b)
xlabel('x Coordinate of Point A');
ylabel('Y Coordinate of Point A');
It will give you the same response.
Plus de réponses (1)
Krishna Zanwar
le 27 Fév 2019
Hey Raphael,
Since Matlab does direct calculations of Vectors you dont need a for loop for this problem.
theta1=20:0.5:80;
theta2=90:-0.5:30;
a = 0.6*cosd(theta1) + 0.2*cosd(theta1-theta2)
b = 0.6*sind(theta1) + 0.2*sind(theta1-theta2)
Hope it helps.
0 commentaires
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!