当对数组进行多层索引时,它能正常工作。但是当我使用它来赋值时,它就不能正常工作了。有人知道为什么下面的 A
没有改变吗?
In [4]: A = rand(6)
Out [4]: 6-element Array{Float64,1}:
0.111552
0.155126
0.78485
0.147477
0.362078
0.959022
In [5]: A[3:5][[true,false,true]]
Out [5]: 2-element Array{Float64,1}:
0.78485
0.362078
In [6]: A[3:5][[true,false,true]] = [99, 999]
Out [6]: 2-element Array{Int64,1}:
99
999
In [7]: A
Out [7]: 6-element Array{Float64,1}:
0.111552
0.155126
0.78485
0.147477
0.362078
0.959022
A[3:5][[true, false, true]]
是在A
的副本上操作而不是直接在A
上操作。(但我不能确定。)然而,使用A[[3, 5]] = [99, 999]
也可以达到同样的效果。 - Alex A.