在rol(a,1)
上使用a=BitArray([true,true,false])
会产生以下结果:
julia> rol(a,1)
3-element BitArray{1}:
true
false
true
如何旋转非位数组?例如,我有b=[1,2,3,4]
,并希望获得以下输出:[2,3,4,1]
。
答案 0 :(得分:8)
您正在寻找circshift
:
julia> circshift([1,2,3,4], -1)
4-element Array{Int64,1}:
2
3
4
1
答案 1 :(得分:1)
circshift
做你想做的事。但是,只需添加到此,您还可以手动操作索引:
julia> a = [1,2,3,4];
julia> a[[2:end; 1]] |> show
[2,3,4,1]
julia> a[[3:end; 1:2]] |> show
[3,4,1,2]
事实上,你在这里做的是'线性''整数数组'索引,所以元素的数量可以超过4(即相同的位置可以多次访问或者完全没有):
julia> a[[3:end; 1:2; 1; 2; 2; 1]] |> show
[3,4,1,2,1,2,2,1]
julia> a[[1:end; end-1:-1:1]] |> show
[1,2,3,4,3,2,1]
这同样适用于更高维数组:
julia> b = [1 2 3 4; 2 3 4 5; 3 4 5 6; 4 5 6 7];
julia> b[[2:end; 1], [1:3; 2:end; 1]]
4×7 Array{Int64,2}:
2 3 4 3 4 5 2
3 4 5 4 5 6 3
4 5 6 5 6 7 4
1 2 3 2 3 4 1