How do I fix an equation in a for loop?

1 view (last 30 days)
Alec Carruthers
Alec Carruthers on 5 Apr 2018
Commented: Star Strider on 6 Apr 2018
clc;
clear;
%Design Mission
PAX = 250;
Cargo = 8000;
Range = 7000; %N. Miles
DRatio = .9524988;
PRatio = .23590495;
M = .85;
Vapp = 145; %Knots
TOFL = 10500; %Feet
a = 576.4592054; % Speed of Sound at 35,000 ft, KNOTS
%%%%%%%Values Changed Manually %%%%%%%%%
Abreast = 8; % Tested 4 - 8
N_aisle = 1; % Tested 1 & 2
Sweep = 25; % Degrees, Tested: 25, 30, 35, 40
AR = 8; % Tested: 6-9
Airfoil = 1; % Supercritical = 1, Conventional = 2.
% Assuming a Cl value so need a for loop.
CL=[.45:.01:.6];
n = length(CL);
DelM = zeros(1,n);
syms x
for i= 1:n
if Airfoil == 1
DelM(i) = vpasolve((CL(i)==((-2*10^9)*x^6)-((1*10^8)*x^5)-((2*10^6)*x^4)-((2632.1*x^3)+124.37*x^2)-(5.8637*x)+.5475),x,[-.01 .015]);
end
if Airfoil == 2
DelM(i) = vpasolve(CL(i)==(-5.1087*x^2)-(2.9657*x)+.5509);
end
NewDelM=double(DelM);
% M_Crit=(M+.004)
end
The error occurs on line 33 and it says "In an assignment A(:) = B, the number of elements in A and B must be the same." I need DelM to have a single value for each CL value tested. This is why I put the constraint in the vpasolve function. When I run the equation by itself it works, but inside the for loop it does not. I would appreciate any help or guidance anybody can give me.
Thank You

Answers (1)

Star Strider
Star Strider on 5 Apr 2018
Save ‘DelM’ as a cell array:
DelM{i} = ...
noting the curly braces ‘{}’ denoting a cell array. Then sort it out later.
  4 Comments
Alec Carruthers
Alec Carruthers on 6 Apr 2018
I ended up using
DelM = cell(1,[]);
and then I used the "}" brackets in the for loop. Thank you for your fast response, I really appreciate it.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!