小编tib*_*ibL的帖子

参数复合类型中的恢复类型

在Julia(<0.6)中,当创建参数化复合类型时MyType{T},是否有一种T从该类型的实例中恢复的简洁方法?

以他们的文档为例:

type Point{T}
    x::T
    y::T
end
Run Code Online (Sandbox Code Playgroud)

我可以创建一个对象p = Point(5.0,5.0),T这里将匹配,Float64以便相应的对象是一个Point{Float64}.有一个干净的方式来恢复Float64吗?

我可以

typeof(p.x)
Run Code Online (Sandbox Code Playgroud)

但感觉这不是正确的事情.

types julia

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

等待在Julia的远程处理器上完成任务

在模拟分布式推理的并行应用程序中,我希望有一个"初始化步骤",其中所有"从属"从"主"接收一些初始信息然后开始他们的任务.

目前我有一个基于该sendTo函数的工作实现(这里的代码在堆栈溢出时被发现),但我不认为它保证了worker在收到初始对象之前不会启动它的任务.

这是一个粗糙的MWE

function sendTo(p::Int; args...)
    for (nm, val) in args
        @spawnat(p, eval(Main, Expr(:(=), nm, val)))
    end
end

a = 5

addprocs(4)

[sendTo(worker,a=a+randn()) for worker in workers()]

@everywhere begin
    println(a)
end
Run Code Online (Sandbox Code Playgroud)

上面的"工作",但我如何确定@everywhere在工作人员收到定义之前,块中的命令没有执行a

Rmk:对于我正在使用的上下文,我想保留两个不同的块,一个用于传播数据,另一个用于处理数据.

其他rmk:道歉,如果这是微不足道的,我对处理并行性很新(对Julia也很新)

parallel-processing julia

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

在Julia中替换为捕获的组

我正在尝试使用replacedoc指定的函数

replace(string :: AbstractString,pat,r [,n :: Integer = 0])

搜索给定的模式pat,并用r替换每个匹配项.如果提供n,则最多替换n次.与搜索一样,第二个参数可以是单个字符,向量或一组字符,字符串或正则表达式.如果r是一个函数,则每次出现都被替换为r(s),其中s是匹配的子字符串.如果pat是正则表达式而r是SubstitutionString,则r中的捕获组引用将替换为相应的匹配文本.

我不明白最后一句,但找不到SubstitutionString(SubString虽然有,但我也无法直接找到doc).我想在r使用所示的捕获组进行替换pat.与Python中的以下简单示例相对应的东西:

regex.sub(r'#(.+?)#', r"captured:\1", "hello #target# bye #target2#")
Run Code Online (Sandbox Code Playgroud)

返回'hello captured:target bye captured:target2'.

regex julia

3
推荐指数
2
解决办法
521
查看次数

标签 统计

julia ×3

parallel-processing ×1

regex ×1

types ×1