How do I fix this error "In an assignment A(:) = B, the number of elements in A and B must be the same."?

1 view (last 30 days)
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
There should be 1 DelM value for every CL iteration. This is why I put the constraint on vpasolve to only use a certain solution. I am still not sure why I am getting the following error: "In an assignment A(:) = B, the number of elements in A and B must be the same."
  1 Comment
Alec Carruthers
Alec Carruthers on 5 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

Sign in to comment.

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.

Categories

Find more on Airfoil tools in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!