Effacer les filtres
Effacer les filtres

Unable to perform assignment because the size of the left side is 1-by-1 and the size of the right side is 0-by-1.

33 vues (au cours des 30 derniers jours)
% Y asymptote of curve
Rd = 2;
% Release point x
XL = -1;
% Starting point x
X0 = 2.5;
% Find A for launch angles 0-45deg
A_values = ones(1,45);
B_values = ones(1,45);
LaunchAngle = ones(1, 45);
for qL = 1:45
LaunchAngle(1,qL) = qL;
qLrad = deg2rad(qL);
Rd = 2; % Y asymptote of curve
XL = -1; % Release point x
X0 = 2.5; % Starting point x
syms A
syms B
F = [(((-2*A*Rd*exp(A*(XL-B)))/((exp(A*(XL-B))+1)^2))-tan(qLrad)== 0), ((-Rd + ((2*Rd) /(1 + exp(A*(X0 - B))))) == 0)];
AB = vpasolve(F, [A, B])
A_values(1,qL) = AB.A;
B_values(1,qL) = AB.B;
end
I understand i'm currently trying to store the incorrect number of elements but I'm new to MATLAB and don't see how I'm doing this.
Offending line is:
A_values(1,qL) = AB.A;

Réponse acceptée

Star Strider
Star Strider le 11 Mar 2020
The problem is that vpasolve could not find a solution, so it returned an empty vector. The Symbolic Math Toolbox is good for many things although not for iterative calculations.
Try this instead:
for qL = 1:45
LaunchAngle(1,qL) = qL;
qLrad = deg2rad(qL);
Rd = 2; % Y asymptote of curve
XL = -1; % Release point x
X0 = 2.5; % Starting point x
% syms A
% syms B
F = @(A,B) [(((-2*A*Rd*exp(A*(XL-B)))/((exp(A*(XL-B))+1)^2))-tan(qLrad)), ((-Rd + ((2*Rd) /(1 + exp(A*(X0 - B))))))];
AB0 = [1; 1];
AB = fsolve(@(b)F(b(1),b(2)), AB0)
A_values(:,qL) = AB(1);
B_values(:,qL) = AB(2);
end
Experiment with the initial parameter estimates (‘AB0’) if necessary to get different results.
  6 commentaires
Adam Thompson
Adam Thompson le 12 Mar 2020
apologies, typo my end. Thanks for your help star strider
Star Strider
Star Strider le 12 Mar 2020
My pleasure!
If my Answer helped you solve your problem, please Accept it!

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by