What's the proper way to do assignment for struct array in Julia? -


i have issue assignment struct array (or constructor struct array) in julia. suppose want below tasks:

# define struct  struct grn_net   gene_net::matrix{float64}   init_s::vector{float64} end # define empty struct array net = array{grn_net}(100) # initialize struct array  n in 1:100     net[n] =grn_net(rand(5,5),rand(-1.:2.:1.,5)) end # make copy of net new_net = deepcopy(net) # initialize temporary matrix temp_mat = zeros(float64,5,5) n in 1:100     # gernerate 2 unique random positions     rand_pos = randperm(100)[1:2]     # randomly swap rows selected matrices     index = rand(0:1,gene_n)     m in 1:5         if index[m]==1             temp_mat[m,:] = net[rand_pos[1]].gene_net[m,:]         else             temp_mat[m,:] = net[rand_pos[2]].gene_net[m,:]         end     end     # save result matrix new net        new_net[n] = grn_net(temp_mat,rand(-1.:2.:1.,5)) end  

so, if run code, find new_net have same gene_net entries in struct array. when debug code, found, although temp_mat changed @ each step, new_net[n-1].gene_net reset save same matrix in new_net[n].gene_net. so, think problem new_net[n].gene_net sharing same space temp_mat. so, changed new_net[n] = grn_net(temp_mat,rand(-1.:2.:1.,5)) new_net[n] = grn_net(deepcopy(temp_mat),rand(-1.:2.:1.,5)), , problem fixed. however, i'm not sure how new_net , temp_mat sharing same space? or what's problem here? clarify issue?

btw, i'm not sure if title appropriate one, if can think of better one, please revise it.


Comments

Popular posts from this blog

node.js - Node js - Trying to send POST request, but it is not loading javascript content -

javascript - Replicate keyboard event with html button -

javascript - Web audio api 5.1 surround example not working in firefox -