Следуя ответу @ longemen3000, вы можете использовать представления для замены столбцов. Например:
julia> A = reshape(1:12, 3, 4)
3×4 reshape(::UnitRange{Int64}, 3, 4) with eltype Int64:
1 4 7 10
2 5 8 11
3 6 9 12
julia> V = view(A, :, [3,2,4,1])
3×4 view(reshape(::UnitRange{Int64}, 3, 4), :, [3, 2, 4, 1]) with eltype Int64:
7 4 10 1
8 5 11 2
9 6 12 3
Тем не менее, хорошая ли это стратегия зависит от шаблонов доступа. Если вы будете использовать элементы V
один или несколько раз, эта стратегия view
подойдет. Напротив, если вы получаете доступ к элементам V
много раз, вам может быть лучше сделать копию или переместить значения на месте, так как это цена, которую вы платите один раз, тогда как здесь вы платите косвенную стоимость каждый раз, когда получаете доступ к значению.