Have a look at the permute! function in julia:
@less permute!([1,2], [1,2])

Modifying it to

function permute!!{T<:Integer}(a, i, p::AbstractVector{T})
    count = 0
    start = 0
    while count < length(a)
        ptr = start = findnext(p, start+1)
        temp = a[i,start]
        next = p[start]
        count += 1
        while next != start
            a[i,ptr] = a[i,next]
            p[ptr] = 0
            ptr = next
            next = p[next]
            count += 1
        end
        a[i,ptr] = temp
        p[ptr] = 0
    end
    a
end

should work (untested).  Note that permuting a column should be faster
though as julia matrices are column-major.

On Wed, 2015-03-11 at 13:49, Davide Lasagna <[email protected]> wrote:
> Hi, 
>
>
> permute!(v, p) permutes the elements of v according to the permutation 
> vector p.
>
> Is there any equivalent built in function for permuting rows of a matrix? 
> Given the memory layout of julia matrices it should not be too difficult to 
> have a similar function for matrices as well.
>
> Thanks, 
>
> Davide

Reply via email to