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

1 Ansicht (letzte 30 Tage)
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 Kommentar
Alec Carruthers
Alec Carruthers am 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

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Star Strider
Star Strider am 5 Apr. 2018
Save ‘DelM’ as a cell array:
DelM{i} = ...
noting the curly braces ‘{}’ denoting a cell array. Then sort it out later.

Kategorien

Mehr zu Airfoil tools finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by