Policy frontier

It should most probably be

% find position of variables in variable_weights
L_pos=strmatch('L',M_.endo_names,'exact');
q_pos=strmatch('q',M_.endo_names,'exact');
Y_pos=strmatch('Y',M_.endo_names,'exact');

% find position of variables in M_.endo_names
L_pos_M_.endo_names=strmatch('L',M_.endo_names,'exact');
q_pos_M_.endo_names=strmatch('q',M_.endo_names,'exact');
Y_pos_M_.endo_names=strmatch('Y',M_.endo_names,'exact');

weight_grid_L=0:0.1:1;        //I want to have this weight on credit fixed at 1. Not sure how to go about it !! Please help !
weight_grid_q=0:0.05:0.5;     //Only allow the weights of q and Y to vary from [0, 1]  
weight_grid_Y=0:0.1:1;

n_grid_points_L = length(weight_grid_L);
n_grid_points_q = length(weight_grid_q);
n_grid_points_Y = length(weight_grid_Y);

var_L_CcCR=NaN(n_grid_points_L,n_grid_points_q,n_grid_points_Y);  
var_q_CcCR=NaN(n_grid_points_L,n_grid_points_q,n_grid_points_Y);
var_Y_CcCR=NaN(n_grid_points_L,n_grid_points_q,n_grid_points_Y);

for grid_iter_L=1:n_grid_points_L
    for grid_iter_q=1:n_grid_points_q
        for grid_iter_Y=1:n_grid_points_Y
            M_.osr.variable_weights(L_pos,L_pos) = weight_grid_L(grid_iter_L);
            M_.osr.variable_weights(q_pos,q_pos) = weight_grid_q(grid_iter_q);
            M_.osr.variable_weights(Y_pos,Y_pos) = weight_grid_Y(grid_iter_Y);
            oo_.osr = osr(M_.endo_names,M_.osr.param_names,M_.osr.variable_indices,M_.osr.variable_weights);
            if oo_.osr.error_indicator==0
                var_L_CcCR(grid_iter_L,grid_iter_q,grid_iter_Y)=oo_.var(L_pos_M_.endo_names,L_pos_M_.endo_names);
                var_q_CcCR(grid_iter_L,grid_iter_q,grid_iter_Y)=oo_.var(q_pos_M_.endo_names,q_pos_M_.endo_names);
                var_Y_CcCR(grid_iter_L,grid_iter_q,grid_iter_Y)=oo_.var(Y_pos_M_.endo_names,Y_pos_M_.endo_names);
            end
        end
    end
end

because the variances need to be three-dimensional objects if you trace out all the possible combination of three parameters.