小编A.Y*_*iha的帖子

Julia中的变异函数(修改其参数的函数)

如何在Julia中定义变异函数,您希望将结果写入其中一个输入.

我知道函数存在push!(list, a),它们会改变它们的输入但是如何使用感叹号定义我自己的一个.

julia

10
推荐指数
1
解决办法
3433
查看次数

在Julia中定义非常稀疏的网络矩阵的最有效方法是什么?

我有一个非常大的网络的数据非常稀疏.我想知道无论两个节点是否连接,什么是最有效的内存存储和最容易访问的方式.

显然,对于N个节点,保持N*N矩阵在我存储的空间方面不是那么有效.所以我想到可能保留下面的邻接列表:

Array(Vector{Int64}, N_tmp)
Run Code Online (Sandbox Code Playgroud)

其中N_tmp <= N,因为许多节点可能没有任何连接.

你能帮我看看是否有更好的方法或者包装在内存和访问方面更好?

social-networking sparse-matrix julia

6
推荐指数
1
解决办法
125
查看次数

Julia:制作自定义类型的空/初始化多维数组

我正在制作一种我自己的类型,KeyVal定义如下:

type KeyVal
    first::Int
    second::Float64
end
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个空/或初始化为零的矩阵,其元素的类型为KeyVal。通常与我做的其他类型

myMat = zeros(KeyVal, (10,3))
Run Code Online (Sandbox Code Playgroud)

但这行不通,因为没有zeros为这种复合类型定义。所以我尝试通过以下方式定义我自己的 zeros 函数:

import Base.zeros

function zeros(KeyVal,dims)
    if length(dims) > 1
        n=dims[1]
        m=dims[2]
        temp = repeat([KeyVal(0,0.0)], outer=m*n)
        temp = reshape(temp, (n,m))
        return temp
    elseif length(dims) == 1
        n=dims[1]
        temp= repeat([KeyVal(0,0.0)], outer=n)
        temp = reshape(temp, (n))
        return temp
    end
end
Run Code Online (Sandbox Code Playgroud)

这将添加到其他先前定义的方法列表中zeros。但是使用它会产生错误:

myMat = zeros(KeyVal, (N,M))

MethodError: no method matching zero(::Type{KeyVal})
Closest candidates are:
    .....
Run Code Online (Sandbox Code Playgroud)

我想知道我是否可以以某种方式解决这个问题,或者是否可以在类型构造函数中发出信号,以便任何涉及该类型的数据结构KeyVal都在 (first = 0, second = …

initialization multidimensional-array composite-types julia type-constructor

5
推荐指数
1
解决办法
2565
查看次数

朱莉娅:将参数传递给 `include("file.jl")`

我想知道是否可以将参数传递给include("file.jl"). 例如,我们解析 中的 ARGSfile.jl并在那里使用它们。类似于我们在命令行中传递参数的操作。

parameter-passing julia

5
推荐指数
1
解决办法
3129
查看次数

数值数组的 Base.repeat 与 Base.kron

我最近遇到了沿不同轴以不同顺序扩展我使用的一些数值数组,并且repeatBase 使用inner和的功能outer非常方便。但是,该kron函数似乎速度更快,内存效率更高。有什么办法可以使用更通用的功能,例如repeat使用此功能。我知道重复不限于数值数组,但使用此功能是否有意义?

function inner_repeat(
    X::AbstractArray{T, 2},
    K::Int64,
) where {T <: AbstractFloat}
    return repeat(X, inner = (K, 1))
end


function inner_kron_repeat(
    X::AbstractArray{T, 2},
    K::Int64,
) where {T <: AbstractFloat}
    return kron(X, ones(T, K, 1))
end


Xs = [rand(10^i, 10^i) for i in 2:4]
Ks = [i for i in 2:4]

for X in Xs
    for K in Ks
        println("matrix of size $(size(X)) with $(K) repeats")
        println("using repeat:")
        @btime inner_repeat($X, $K) …
Run Code Online (Sandbox Code Playgroud)

arrays repeat julia

5
推荐指数
0
解决办法
114
查看次数

MetaGraphs加载并保存

如何从LightGraphs和MetaGraphs中保存和加载MetaGraph对象,以便在加载元图时仍具有元数据?现在我有一个mg使用以下方式保存的元数据:

LightGraphs.savegraph("net.lg", mg)
Run Code Online (Sandbox Code Playgroud)

但是尝试重新加载它:

reloaded = LightGraphs.loadgraph("net.lg")
Run Code Online (Sandbox Code Playgroud)

给我以下内容:

BoundsError: attempt to access 2-element Array{SubString{String},1} at index [3]
Run Code Online (Sandbox Code Playgroud)

无论如何,在MetaGaphs软件包中的元数据中有待阅读吗?

io metadata julia lightgraphs

4
推荐指数
1
解决办法
119
查看次数

如何在Julia中绘制StatsBase.Histogram对象?

LightGraphs.jl在Julia中使用package(),它有一个预定义的直方图方法,可以创建网络的度分布g.

deg_hist = degree_histogram(g)
Run Code Online (Sandbox Code Playgroud)

我想制作一个这方面的情节,但我很想在朱莉娅密谋.返回的对象是StatsBase.Histogram以下内容作为其内部字段:

StatsBase.Histogram{Int64,1,Tuple{FloatRange{Float64}}}
edges: 0.0:500.0:6000.0
weights: [79143,57,32,17,13,4,4,3,3,2,1,1]
closed: right
Run Code Online (Sandbox Code Playgroud)

你能帮助我如何利用这个对象绘制直方图吗?

plot histogram julia

3
推荐指数
1
解决办法
2136
查看次数

如何在Julia中使用map时知道迭代器的索引

我有一个数组数组,称为y:

y=Array(Vector{Int64}, 10)
Run Code Online (Sandbox Code Playgroud)

它基本上是一维数组(其中10个)的列表,每个1维数组的长度为5.以下是它们如何初始化的示例:

for i in 1:10
    y[i]=sample(1:20, 5)
end
Run Code Online (Sandbox Code Playgroud)

每个一维阵列包括5点之间随机取样的整数120.

现在我施加的映射函数,其中对于每个在这些1维阵列的y,不包括从该数字120:

map(x->setdiff(1:20, x), y)
Run Code Online (Sandbox Code Playgroud)

不过,我想,以确保在应用的功能y[i],如果输出setdiff(1:20, y[i])包括i,i从结果中排除.换句话说,我想要一个像...一样的功能

setdiff(deleteat!(Vector(1:20),i) ,y[i])
Run Code Online (Sandbox Code Playgroud)

但随着map.

主要是我的问题是你是否可以访问map函数中的索引.

PS,我知道怎么做comprehensions,我想知道是否有可能用地图做.

理解方式:

[setdiff(deleteat!(Vector(1:20), index), value) for (index,value) in enumerate(y)]
Run Code Online (Sandbox Code Playgroud)

julia map-function

3
推荐指数
1
解决办法
562
查看次数

Julia数组理解内存使用情况

我正在使用数组解析来定义自定义类型数组的元素的感兴趣值.

sum([value.interest for value in ArrayofMyType if condition])
Run Code Online (Sandbox Code Playgroud)

该表达式本身处于迭代循环中.这意味着每个周期,这种理解都使用新的记忆.此外,每次条件可能对所得到的阵列施加不同的长度,并且在循环外定义具有固定长度的预定义阵列可能不是最佳方式.

每次循环运行时都会产生开销,我不知道如何提高效率并更好地利用内存.有没有人可以用这个指导我?理解在风格上很方便但我觉得在我的情况下并不是最有效的.

代码风格是:

for i in 1:MAX_ITER
    ### Some code above
    sum([value.interest for value in ArrayofMyType if condition])     
    ### Some code below
end
Run Code Online (Sandbox Code Playgroud)

arrays memory-management list-comprehension julia

1
推荐指数
1
解决办法
207
查看次数

在Julia中有没有相当于c ++ style std :: map的东西

我想知道std::map在julia中是否有任何等价物......仅仅为了映射的目的,我知道我可以使用Pair类型,例如,但是其他类型是否具有更好的功能std::map

stdmap julia

1
推荐指数
1
解决办法
105
查看次数

Julia LightGraphs weakly_connected_components

julia LightGraphs中的weakly_connected_components是否应该提供连接组件,如果将DiGraph转换为无向图,那么每个组件应该连接?我试过这个,我没有收到这样的组件?作为一个例子,我在政治博客数据上尝试了这个作为无向网络

data=readdlm(path,',',Int64) #contains edges in each row
N_ = length(unique(vcat(data[:,1],data[:,2]))) ##to get number of vertices
network  = LightGraphs.DiGraph(N_)
#construct the network
for i in 1:size(data,1)
    add_edge!(network, Edge(data[i,1], data[i,2]))
end
#largest weakly connected component
net = weakly_connected_components(network)[1]
temp_net,vmap = induced_subgraph(network, net)
Run Code Online (Sandbox Code Playgroud)

在获得最大的弱连接组件后,我看到以下内容:

isempty([i for i in vertices(temp_net) if isempty(edges(temp_net).adj[i])])

julia>false
Run Code Online (Sandbox Code Playgroud)

签名一些节点没有传入或传出边缘.可能是什么问题?我使用的是最新版本6,但LightGraphs软件包测试似乎正在运行.

directed-graph julia lightgraphs

1
推荐指数
1
解决办法
196
查看次数