Some additional comments:

   1. vcat will always create a new array, and copies the contents of the
   arrays to be concatenated into the new one.
   2. Julia stores arrays in column-major order, so vcat(A, [1 2]) does the
   following
   - copy column 1 of A to temp array
      - copy the "1" from [1 2] to temp
      - copy column 2 of A to temp
      - copy the "2" from [1 2] to temp

This is rather inefficent.  In contrast, hcat(A, [1,2])


   - copies all of A to temp
   - copies [1,2] to temp


The first method Ivar recommended would be to do the following:

a = Float64[]
for i = 1:100
    push!(a, rand(2)...)
end

A = reshape(a, (2, div(length(a, 2)))


Cheers,
   Kevin


On Wed, Jul 23, 2014 at 12:33 PM, Ivar Nesje <[email protected]> wrote:

> You can't use push! on multidimentional arrays. You can push onto a 1d
> array, and then reshape. Another way is to collect all the row/column
> vectors and use hcat(c...) or vcat(c...) to create an array.
>
> Ivar
>
> kl. 21:22:01 UTC+2 onsdag 23. juli 2014 skrev john pollack følgende:
>
>> Hi. I want to create a 2-column array.It should be empty at first, then I
>> should be able to add rows to it. I was able to do this by :
>>
>> A = Array(Float64,(0,2))
>>
>> A = vcat(A , [ 1 2 ] )
>>
>> However, I couldn't use push! function for this. Is it possible to use
>> push! function for this aim, and are there any substantial performance
>> differences between push! and vcat functions  ?
>> Thanks for any help.
>>
>

Reply via email to