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.
>>
>