如何在Parfor Matlab中使用计数器

我有以下循环,我在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,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,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

谢谢

wnyangbo 回答:如何在Parfor Matlab中使用计数器

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3142165.html

大家都在问