I have to update values of a number of vectors, say s1 … s20. I need a way to access arbitrarily s_n, the nth index of variable s.
s1=[1 2 3] s2=[11 12 13 14 15] # calculations lead to "n" and "val" n=2 val=16 # I append "val" to the "n"th variable "s". if n == 1 append!(s1, val) elseif n == 2 append!(s2, val) # elseif ... same for n=3, n=4 ... end
I would like to reduce code duplication. I found on this forum : How to change the name of a variable in a for loop So I rewrote as:
It works, but it is 10x slower (I have a loop over millions of data points).
I was previously working with scilab. The same program as above can be done in scilab by defining variable s as a list, in which the elements of any type can be indexed.
// Scilab 6.1.1 console s=list() s(1)=[1 2 3] s(2)=[11 12 13 14 15] // ... we can append to s by calling s($+1), for example in a loop n=2 val=16 // we call the "n"th index of list "s" and append "val" in the end s(n)($+1)=val
Is it possible to do something similar in julia? I mean defining a heterogeneous list or a vector of vectors where each of the elements can grow dynamically? (without compromising too much of execution performance)