MATLAB Answers

Why does the array only work once?

1 view (last 30 days)
Hey guys,
I'm having trouble with the code in trying to find the angle phi. The calculation for AD uses Theta as I intended, but when calculating Phi, I only get one answer instead of multiple. This makes the rest of my code incorrect. Any suggestions?
% Givens
AB = 150;
BD = 200;
Theta = 20:120;
Mb = 2.5;
%Solutions
AD = sqrt(BD^2 + AB^2-2*BD*AB*cosd(Theta));
%Finding angle Phi of force P
Phi = asind(AB*sind(Theta)/AD);
%Finding force P
P = Mb/(BD*sind(90 - Phi));
%Finding Ma
Ma = P * AD;

  0 Comments

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 3 Oct 2020
Use element-wise division:
Phi = asind(AB*sind(Theta)./AD);
↑ ← HERE
and:
P = Mb./(BD*sind(90 - Phi));
↑ ← HERE
and element-wide multiplication:
Ma = P .* AD;
↑ ← HERE
and the calculations do what you want them to do.

  2 Comments

Marcos Dominguez
Marcos Dominguez on 3 Oct 2020
Thank you! This fixed my code, just right!
Star Strider
Star Strider on 3 Oct 2020
As always, my pleasure!

Sign in to comment.

More Answers (2)

Alan Stevens
Alan Stevens on 3 Oct 2020
You need element by element multiplication and division:
% Givens
AB = 150;
BD = 200;
Theta = 20:120;
Mb = 2.5;
%Solutions
AD = sqrt(BD^2 + AB^2-2*BD*AB*cosd(Theta));
%Finding angle Phi of force P
Phi = asind(AB*sind(Theta)./AD); %%%%% ./ not just /
%Finding force P
P = Mb./(BD*sind(90 - Phi)); %%%%% ./ not just /
%Finding Ma
Ma = P.* AD; %%%%% .* not just *

  1 Comment

Marcos Dominguez
Marcos Dominguez on 3 Oct 2020
Thank you sir. This fixed my code.

Sign in to comment.


Sulaymon Eshkabilov
Sulaymon Eshkabilov on 3 Oct 2020
Hi,
You have overlooked a few dot operations. Here is the corrected part of your code:
%Finding angle Phi of force P
Phi = asind(AB*sind(Theta)./AD);
%Finding force P
P = Mb./(BD*sind(90 - Phi));
%Finding Ma
Ma = P.*AD;

Community Treasure Hunt

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

Start Hunting!