作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法在 Julia 中连接 ArrayViews,而不复制底层数据? (如果能解决问题,我也很乐意使用 SubArray。)
例如,在下面的代码中,我想要一个 ArrayView 来引用 y1
中的数据。和 y2
.
julia> x = [1:50];
julia> using ArrayViews;
julia> y1 = view(x, 2:5);
julia> y2 = view(x, 44:48);
julia> concat(y1, y2) # I wish there were a function like this
ERROR: concat not defined
julia> [y1, y2] # This copies the data in y1 and y2, unfortunately
9-element Array{Int64,1}:
2
3
4
5
44
45
46
47
48
最佳答案
不直接。但是您可以使用以下内容滚动您自己的类型:
julia> type CView{A<:AbstractArray} <: AbstractArray
a::A
b::A
end
julia> import Base: size, getindex, setindex!
julia> size(c::CView) = tuple([sa+sb for (sa, sb) in zip(size(c.a), size(c.b))]...)
size (generic function with 57 methods)
julia> getindex(c::CView, i::Int) = i <= length(c.a) ? getindex(c.a, i) : getindex(c.b, i)
getindex (generic function with 180 methods)
julia> c = CView(y1, y2);
julia> size(c)
(9,)
julia> c[1]
2
julia> c[4]
5
julia> c[5]
48
sub2ind
可以使用。
关于julia - 在 Julia 中连接 ArrayViews(或 sliceviews 或 SubArrays)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30007902/
有没有办法在 Julia 中连接 ArrayViews,而不复制底层数据? (如果能解决问题,我也很乐意使用 SubArray。) 例如,在下面的代码中,我想要一个 ArrayView 来引用 y1
我是一名优秀的程序员,十分优秀!