Julia:创建 SparseArrays
Julia: creating SparseArrays
我想创建一个稀疏数组,我在其中定义了一个规则来合并重复项。文档说我可以用 sparse(i,j,v,[m,n,combine])
来做到这一点。我在下面的例子中尝试过,但没有成功。能给个建议吗?
i = [1,2,3,3];
j = [1,2,3,2];
v = [10.,11.,12.,13.];
full(sparse([i;j],[j;i],[v;v], [3,3,combine(a,b)=mean([a,b])]))
full(sparse([i;j],[j;i],[v;v], [3,3,mean]))
full(sparse([i;j],[j;i],[v;v], [3,3,-(a,b)]))
full(sparse([i;j],[j;i],[v;v], [3,3,-]))
文档字符串中的方括号表示这些是可选参数。写法是:
julia> full(sparse([i;j],[j;i],[v;v], 3,3,-))
3×3 Array{Int64,2}:
0 0 0
0 0 13
0 13 0
您可以省略最后一个参数,然后将默认值合并为 +
:
julia> full(sparse([i;j],[j;i],[v;v], 3,3))
3×3 Array{Int64,2}:
20 0 0
0 22 13
0 13 24
您可以使用 methods(sparse)
检查函数接受的参数集。另外,如果你写 @edit sparse([i;j],[j;i],[v;v])
你会去 sparse
的源代码并且可以准确地了解什么是被接受的。
我想创建一个稀疏数组,我在其中定义了一个规则来合并重复项。文档说我可以用 sparse(i,j,v,[m,n,combine])
来做到这一点。我在下面的例子中尝试过,但没有成功。能给个建议吗?
i = [1,2,3,3];
j = [1,2,3,2];
v = [10.,11.,12.,13.];
full(sparse([i;j],[j;i],[v;v], [3,3,combine(a,b)=mean([a,b])]))
full(sparse([i;j],[j;i],[v;v], [3,3,mean]))
full(sparse([i;j],[j;i],[v;v], [3,3,-(a,b)]))
full(sparse([i;j],[j;i],[v;v], [3,3,-]))
文档字符串中的方括号表示这些是可选参数。写法是:
julia> full(sparse([i;j],[j;i],[v;v], 3,3,-))
3×3 Array{Int64,2}:
0 0 0
0 0 13
0 13 0
您可以省略最后一个参数,然后将默认值合并为 +
:
julia> full(sparse([i;j],[j;i],[v;v], 3,3))
3×3 Array{Int64,2}:
20 0 0
0 22 13
0 13 24
您可以使用 methods(sparse)
检查函数接受的参数集。另外,如果你写 @edit sparse([i;j],[j;i],[v;v])
你会去 sparse
的源代码并且可以准确地了解什么是被接受的。