Hello I am trying to do the following routine but there is a mistake in the following part:
wage_matrix_m[i,1]=7 ;
wage_matrix_f[i,1]=7 ;
wage_matrix_m[i,2]=7 ;
wage_matrix_f[i,2]=7 ;
I have read the manual and maybe I misunderstood the instructions, any guide about the correct way to code this will be highly appreciated.
Thank you.
/* Initialization of Variables */ wage_matrix_m = zeros(sample_size,column_matrices_max) ; wage_matrix_f = zeros(sample_size,column_matrices_max) ; counter_kids = seqa(1,1,column_matrices_max) ; comp_kids_matrix = zeros(sample_size,column_matrices_max) ; duration_matrix = zeros(sample_size,column_matrices_max) ; HHprod_matrix = zeros(sample_size,column_matrices_max) ; value_matrix = zeros(sample_size,column_matrices_max) ; state_matrix = zeros(sample_size,column_matrices_max) ; ii_total = ones(sample_size,1).*2 ; /* spell_counter */ ii_total_k = ones(sample_size,1) ; /* kids spell_counter */ ii_labor_m = ones(sample_size,1) ; /* firing shock males*/ ii_labor_f = ones(sample_size,1) ; /* firing shock females*/ /* Simulation */ threadFor i (1,sample_size,1) ;//i; ind_kids = 0; /*indicator if the kids shock had happened*/ next_state = 1; /*formerly zeros(sample_size,column_matrices_max)*/ labor_time = 0; n_sta = 0; state = 0; ii_wage_m = 1; ii_wage_f = 1; wage_matrix_m[i,1]=7 ; wage_matrix_f[i,1]=7 ; wage_matrix_m[i,2]=7 ; wage_matrix_f[i,2]=7 ; w_ind_m=minindc( miss(maxc( (w1_vector~wage_matrix_m[i,1]*ones(N_w1 ,1) )') , wage_matrix_m[i,1]) ) ; w_ind_f=minindc( miss(maxc( (w2_vector~wage_matrix_f[i,1]*ones(N_w1 ,1) )') , wage_matrix_f[i,1]) ) ; threadEndFor;
1 Answer
0
There can only be one slice assignment to a variable in the loop. You can change the four individual assignments to two, like this
threadfor i (1,sample_size,1) ;//i; ind_kids = 0; /*indicator if the kids shock had happened*/ next_state = 1; /*formerly zeros(sample_size,column_matrices_max)*/ labor_time = 0; n_sta = 0; state = 0; ii_wage_m = 1; ii_wage_f = 1; wage_matrix_m[i,1:2] = 7~7; wage_matrix_f[i,1:2] = 7~7; threadEndFor;
and the problem should be resolved.
Your Answer
1 Answer
0
There can only be one slice assignment to a variable in the loop. You can change the four individual assignments to two, like this
threadfor i (1,sample_size,1) ;//i; ind_kids = 0; /*indicator if the kids shock had happened*/ next_state = 1; /*formerly zeros(sample_size,column_matrices_max)*/ labor_time = 0; n_sta = 0; state = 0; ii_wage_m = 1; ii_wage_f = 1; wage_matrix_m[i,1:2] = 7~7; wage_matrix_f[i,1:2] = 7~7; threadEndFor;
and the problem should be resolved.