selectperm!

selectperm!(ix, v, k, [alg=,] [by=,] [lt=,] [rev=false,] [initialized=false])

Like selectperm, but accepts a preallocated index vector ix. If initialized is false (the default), ix is initialized to contain the values 1:length(ix).

Examples

The selectperm! function in Julia is used to generate a permutation of a given collection based on specific criteria. It is similar to the selectperm function, but instead of returning a new permutation, it modifies the preallocated index vector ix in place.

julia> v = [10, 5, 20, 15, 30];
julia> ix = collect(1:length(v));
julia> selectperm!(ix, v, 3)
5-element Array{Int64,1}:
 2
 1
 4
 3
 5

In this example, the selectperm! function generates a permutation of the index vector ix based on the values in v such that the resulting permutation represents the indices of the top 3 elements in descending order. The resulting modified ix vector is [2, 1, 4, 3, 5].

The optional parameters that can be passed to selectperm! are:

  • alg: Specifies the algorithm to use for the permutation. Default is <algorithm>.
  • by: Optional transformation function to apply to the elements of the collection before comparing them.
  • lt: Optional comparison function to use for sorting the elements.
  • rev: Specifies whether the permutation should be in reverse order. Default is false.
  • initialized: Specifies whether the index vector ix is preinitialized. Default is false.

Example with optional parameters:

julia> v = [7, 2, 5, 9, 3];
julia> ix = collect(1:length(v));
julia> selectperm!(ix, v, 2, by = x -> x^2, rev = true)
5-element Array{Int64,1}:
 4
 3
 1
 5
 2

In this example, the selectperm! function generates a permutation of the index vector ix based on the squared values of v in descending order. The resulting modified ix vector is [4, 3, 1, 5, 2].

See Also

complement, complement!, intersect, intersect!, issubset, selectperm, selectperm!, Set, setdiff, setdiff!, symdiff, union, union!,

User Contributed Notes

Add a Note

The format of note supported is markdown, use triple backtick to start and end a code block.

*Required Field
Details

Checking you are not a robot: