给定一些 A: [sps]
在 dom: domain(2)
的稀疏子域上, 切片 A[A.domain.dim(1), k]
将第 k 列作为密集的一维数组生成。如何将稀疏 nD 数组的第 k n-1 维切片检索为稀疏 (n-1)D 数组?
var nv: int = 8,
D: domain(2) = {1..nv, 1..nv},
SD: sparse subdomain(D),
X: [SD] real;
SD += (1,2); X[1,2] = 1;
SD += (2,3); X[2,3] = 1;
SD += (3,1); X[3,1] = 1;
SD += (3,4); X[3,4] = 1;
SD += (4,5); X[4,5] = 1;
SD += (3,6); X[3,6] = 1;
SD += (6,8); X[6,8] = 1;
writeln(X);
writeln(X[X.domain.dim(1),2]);
返回
1.0
1.0
1.0 1.0 1.0
1.0
1.0
1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
在我成功进行稀疏切片的情况下,期望是单个
1.0
通过调用 writeln()
返回具有检索该条目的此位置的能力在 slice.domain
.
最佳答案
我认为,不幸的是,您正在做正确的事情,并且您只是违反了当前(截至 Chapel 1.16)关于 slicing sparse domains 的限制。 .
关于multidimensional-array - Chapel 中稀疏数组的稀疏切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49265630/