multidimensional-array - Chapel 中稀疏数组的稀疏切片

标签 multidimensional-array slice sparse-matrix hpc chapel

给定一些 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/

相关文章:

javascript - 如何在 JS 中从数组中切出值

sorting - 戈朗 : Sort the interface slice

r - 获取 R 中稀疏矩阵的上三角非零元素

python - 如果涉及 Inf,为什么稀疏矩阵的矩阵乘法与密集矩阵的乘法不同?

python - 用 scipy.sparse 计数

c# - 将单行从多维数组复制到新的一维数组

c++ - 在 C++ 中初始化二维数组(矩阵)

arrays - go 1d array 将 2d array 与 append 相结合

python-3.x - 在 Python 中切片 3d 数组列表

Python 扩展切片与列表 : is the documentation correct?