Matrix julia中除一个索引外的所有索引的迭代器
我想用已知秩的julia矩阵*张量写一个一般的张量运算 我的张量是一个有n个索引的对象,例如,张量1,a_2,…,a_n,我的矩阵只对i的索引有影响。因此,在除第i个索引外的每个索引上都有一个遍历的迭代器是很方便的。是否有一个简单的函数来实现这一点,或者您是否知道如何以良好的性能来实现这一点?我还需要迭代器的结果,我认为是笛卡尔指数形式,因为我必须以矩阵向量乘法的方式迭代最后一个索引 我的第一个想法是在第i个索引之前和之后获得索引的所有排列,但这些排列的生成似乎很乏味 我希望你能帮助我, 顺致敬意,Matrix julia中除一个索引外的所有索引的迭代器,matrix,iterator,julia,tensor,Matrix,Iterator,Julia,Tensor,我想用已知秩的julia矩阵*张量写一个一般的张量运算 我的张量是一个有n个索引的对象,例如,张量1,a_2,…,a_n,我的矩阵只对i的索引有影响。因此,在除第i个索引外的每个索引上都有一个遍历的迭代器是很方便的。是否有一个简单的函数来实现这一点,或者您是否知道如何以良好的性能来实现这一点?我还需要迭代器的结果,我认为是笛卡尔指数形式,因为我必须以矩阵向量乘法的方式迭代最后一个索引 我的第一个想法是在第i个索引之前和之后获得索引的所有排列,但这些排列的生成似乎很乏味 我希望你能帮助我, 顺致敬
莱普米勒不清楚你到底在追求什么。可以在忽略矩阵第i行的索引上获得迭代器,如
Iterators.filter(x->x[1] != i, CartesianIndices(a))
这对你有用吗,或者你能把问题编辑得更明确些吗?你到底想问什么还不清楚。可以在忽略矩阵第i行的索引上获得迭代器,如
Iterators.filter(x->x[1] != i, CartesianIndices(a))
这对您有用吗,或者您可以将问题编辑得更明确一些吗?FWIW,还有一个很好的小程序包,它允许您删除特定的列/行,如下所示:
julia> using InvertedIndices
julia> x = rand(4,4)
4×4 Array{Float64,2}:
0.779118 0.66097 0.335433 0.583011
0.284284 0.799394 0.353914 0.146769
0.716189 0.605426 0.2449 0.92238
0.140876 0.210152 0.810854 0.37236
julia> x[Not(2), Not(4)] # drop second row and 4th column
3×3 Array{Float64,2}:
0.779118 0.66097 0.335433
0.716189 0.605426 0.2449
0.140876 0.210152 0.810854
FWIW,还有一个很好的小程序包,名为,它允许您删除特定的列/行,如下所示:
julia> using InvertedIndices
julia> x = rand(4,4)
4×4 Array{Float64,2}:
0.779118 0.66097 0.335433 0.583011
0.284284 0.799394 0.353914 0.146769
0.716189 0.605426 0.2449 0.92238
0.140876 0.210152 0.810854 0.37236
julia> x[Not(2), Not(4)] # drop second row and 4th column
3×3 Array{Float64,2}:
0.779118 0.66097 0.335433
0.716189 0.605426 0.2449
0.140876 0.210152 0.810854
你确定不只是想使用包实现的矩阵*张量乘法吗?你确定不只是想使用包实现的矩阵*张量乘法吗?