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

1 回表示 (過去 30 日間)
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 件のコメント
Alec Carruthers
Alec Carruthers 2018 年 4 月 5 日
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

サインインしてコメントする。

回答 (1 件)

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

カテゴリ

Help Center および File ExchangeAirfoil tools についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by