many thanks, vcat() is indeed the best way to reassemble the output of map!

On Tuesday, December 2, 2014 2:10:50 AM UTC+13, David van Leeuwen wrote:
>
> Hi Mike, 
>
> One way of obtaining what you want, using your own construction, is:
>
> *vcat(map(row->a[row,:]+1, 1:size(a)[1])...)*
>
> another way would be to use mapslices(), or write a loop, or use matrix 
> calculations, all depending a bit on what your operation on the row is. 
>  (It may be faster to access the data in the matrix by column, so you might 
> want to reorganize the data in that case. 
>
> ---david
>
> On Sunday, November 30, 2014 11:11:38 PM UTC+1, Michael Mayo wrote:
>>
>> Hi,
>>
>> How do I use map or pmap in Julia to apply a function each row of a 2D 
>> matrix and get back a 2D matrix with each row appropriately updated? 
>> Currently, map returns an array of 1D arrays instead of a 2D array, e.g.:
>>
>> *julia> **a=rand(5,3)*
>>
>> *5x3 Array{Float64,2}:*
>>
>> * 0.0970387  0.944568   0.589086 *
>>
>> * 0.477571   0.916078   0.0674227*
>>
>> * 0.424044   0.827748   0.49385  *
>>
>> * 0.691055   0.0370019  0.845552 *
>>
>> * 0.686033   0.812021   0.222669 *
>>
>>
>> *julia> **map(row->a[row,:]+1, 1:size(a)[1])*
>>
>> *5-element Array{Array{Float64,2},1}:*
>>
>> * 1x3 Array{Float64,2}:*
>>
>> * 1.09704  1.94457  1.58909*
>>
>> * 1x3 Array{Float64,2}:*
>>
>> * 1.47757  1.91608  1.06742*
>>
>> * 1x3 Array{Float64,2}:*
>>
>> * 1.42404  1.82775  1.49385*
>>
>> * 1x3 Array{Float64,2}:*
>>
>> * 1.69106  1.037  1.84555  *
>>
>> * 1x3 Array{Float64,2}:*
>>
>> * 1.68603  1.81202  1.22267*
>>
>>
>> Although I could probably post-process the output of map back into a 2D 
>> array, is there is a more elegant way of doing it?
>>
>>
>> Mike
>>
>

Reply via email to