如果您重塑"视图",则输出是重新整形的"视图".
如果您的初始变量是普通数组,则可以在函数调用期间将其转换为"动态"视图.
根据您之后的评论,在此操作期间没有重新分配:您可以使用该pointer功能进行确认.对象是不一样的,因为它们被解释为指向不同"类型"的指针,但内存地址是相同的.
julia> A = ones(5,5,5); B = view(A, 2:4, 2:4, 2:4); C = reshape(B, 1, 27);
julia> is(B,C)
false
julia> pointer(B)
Ptr{Float64} @0x00007ff51e8b1ac8
julia> pointer(C)
Ptr{Float64} @0x00007ff51e8b1ac8
julia> C[1:5] = zeros(1,5);
julia> A[:,:,2]
5×5 Array{Float64,2}:
1.0 1.0 1.0 1.0 1.0
1.0 0.0 0.0 1.0 1.0
1.0 0.0 0.0 1.0 1.0
1.0 0.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
325 次 |
| 最近记录: |