У меня есть следующий цикл, и я получаю сообщение об ошибке MachPoints
: "Valid indices for MachPoints are restricted in PARFOR loops"
и parfor cannot run due to the way the variable is used
some previous code declaring A,B,C..
if Case == 4
rng(1);
Initial_Vx = some number
Initial_Vy = some number
Initial_Vz = some number
Initial_X = some number
Initial_Y = some number
Initial_Z = some number
WVelocity_X = some number
WVelocity_Y = some number
WVelocity_Z = some number
WError_X = some number
WError_Y = some number
WError_Z = some number
parfor Monte = 1:5
Wind_Velocity = [WVelocity_X WVelocity_Y WVelocity_Z];
Wind_Error = [WError_X WError_Y WError_Z];
Launch_Error = some number;
Initial_Velocity = [Initial_Vx Initial_Vy Initial_Vz]*(Launch_Error/100);
Initial_Position = [Initial_X Initial_Y Initial_Z];
Rotation = 0.00;
Global_Consts = {A, B, C, D, E, F};
Initial_Conditions = {Initial_Velocity, Initial_Position, Wind_Velocity, Wind_Error};
Fig_Num = 1;
k = 1;
for MachP = [0.5:0.01:0.95, 1.2:0.01:3.5]
if MachP < 1.2
[Xcp_Total, Lift_Canard, MRoll_Canard, My_Canard, Sim_Parameters] = FIN_SUB(MachP);
else
[Xcp_Total, Lift_Canard, MRoll_Canard, My_Canard, Sim_Parameters] = FIN_SUP(MachP);
end
Cln_alpha_M(k) = Sim_Parameters(1);
Clc_alpha_M(k) = Sim_Parameters(2);
Clw_alpha_M(k) = Sim_Parameters(3);
Clb_alpha_M(k) = Sim_Parameters(4);
MachPoints(k) = MachP;
k = k + 1;
end
Parameters = Sim_Parameters(5:25);
[Position,Initial_Conditions,Tgo] = GFunction(MachPoints,Cln_alpha_M,Clc_alpha_M,Clw_alpha_M,Clb_alpha_M,Parameters);
Final_Position(1,:) = Position{1,1}(end,:);
Whole_Traj{Monte} = Position{1,1};
Miss(Monte) = sqrt(sum((Final_Position(1,:)).^2));
Delta_X(Monte) = Final_Position(1,1) - 0;
Delta_Y(Monte) = Final_Position(1,2) - 0;
IC{Monte} = Initial_Conditions;
Tgo_Data{Monte} = Tgo{1,1}(:,1);
end
Mean_Miss = mean(Miss);
end
Спасибо