Why does the array only work once?
14 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Marcos Dominguez
il 3 Ott 2020
Commentato: Star Strider
il 3 Ott 2020
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 Commenti
Risposta accettata
Star Strider
il 3 Ott 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 Commenti
Più risposte (2)
Alan Stevens
il 3 Ott 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 *
Sulaymon Eshkabilov
il 3 Ott 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;
Vedere anche
Categorie
Scopri di più su Annotations in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!