标签: julia

搜索文件夹中的文件

我正在尝试使用Julia解析大量文本文件,并且我想循环遍历文件名数组,而不是键入函数调用来单独读取每个文件.到目前为止,我一直无法找到一种方法来搜索文件夹中与模式匹配的文件.

是否有一个基础库Julia函数,它将返回给定文件夹中的所有文件名,匹配给定的字符串模式?

R中的等效函数是list.files(),如果这有助于传达我想要的东西.

julia

22
推荐指数
2
解决办法
9587
查看次数

如何清除或删除julia中的全局?

是否有任何语法与MATLAB的"清除"类似,即如果我有一个全局变量"a".我怎么摆脱它?我怎么做模拟

clear a
Run Code Online (Sandbox Code Playgroud)

global global-variables julia

21
推荐指数
5
解决办法
2万
查看次数

在Julia脚本中,您能判断脚本是已导入还是直接执行?

python中的一个常见约定是按如下方式构造脚本的主要功能,因此它既可以直接作为脚本运行,也可以在导入时不导入执行main():

def main():
    do_stuff()

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

是否有类似的变量在Julia中设置,以便脚本可以知道它是使用导入require("script.jl"还是直接执行?

例如,说我有两个脚本,a.jl并且b.jl,具有沿magic_function()该行为如下:

a.jl:

println("Did we execute a.jl directly? ", magic_function())
Run Code Online (Sandbox Code Playgroud)

b.jl:

require("a.jl")
Run Code Online (Sandbox Code Playgroud)

执行以下命令会导致......

> julia a.jl
Did we execute a.jl directly? true
> julia b.jl
Did we execute a.jl directly? false
Run Code Online (Sandbox Code Playgroud)

magic_function()在Julia的当前分布中是否存在类似的函数?

julia

20
推荐指数
5
解决办法
2275
查看次数

我可以将类型信息添加到Julia中的函数参数吗?

我可以将类型信息添加到函数的参数中吗?

请考虑以下示例:

function f{T} (func, x::Int)
    output = Dict{Int, Any}()
    output[x] = func(x)
    return output
end 
Run Code Online (Sandbox Code Playgroud)

我不喜欢我必须说Any的字典的值类型.我宁愿做以下事情:

function f{T} (func::Function{Int->T}, x::Int)
    output = Dict{Int, T}()
    output[x] = func(x)
    return output
end 
Run Code Online (Sandbox Code Playgroud)

我可以提供类似这样的函数的类型提示吗?我有点想说以下

f :: (Int -> T), Int -> Dict{Int, T}
Run Code Online (Sandbox Code Playgroud)

julia

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

如何从Julia中的加权数组中选择随机项?

考虑两个1-dim数组,一个包含要从中选择的项,另一个包含绘制另一个列表项的概率.

items = ["a", 2, 5, "h", "hello", 3]
weights = [0.1, 0.1, 0.2, 0.2, 0.1, 0.3]
Run Code Online (Sandbox Code Playgroud)

在朱莉娅,怎么能随意在选择项目items使用weights对重量绘图给定项目的概率是多少?

arrays random random-sample julia

20
推荐指数
2
解决办法
2825
查看次数

Julia中的Array {Bool}和BitArray有什么区别?它们有什么关系?

我正在为布尔2d数组编写一个函数:

function foo(A::Array{Bool,2})
   ...
end
Run Code Online (Sandbox Code Playgroud)

用它评估和测试它

A = randbool(3,3)
foo(A)
Run Code Online (Sandbox Code Playgroud)

回报

ERROR: 'foo' has no method matching foo(::BitArray{2})
Run Code Online (Sandbox Code Playgroud)

显然,randbool()生成一个BitArray,而我认为randbool()会产生一个Array{Bool}.

如何Array{Bool}BitArray相关?为什么它们都存在?

我可以foo()用这样的方式编写它使用单一方法接受两种输入类型(因为我看不出差异)?

arrays boolean bitarray julia

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

Julia并行编程 - 使所有工作人员都可以使用现有功能

我遇到了以下问题:

我有一个名为TrainModel的函数,它在一个线程上运行很长时间.当它完成计算时,它返回一个函数作为输出参数,让我们称之为f.当我询问这个f的类型时,朱莉娅回归:

(1种方法的通用功能)

(我不确定这最后一条信息对于阅读此内容的人有用)

现在,在第二步中,我需要在非常大的值数组上应用函数f.这是我想要并行化的一个步骤.已经启动了具有多个流程的Julia,例如

julia -p 4
Run Code Online (Sandbox Code Playgroud)

理想情况下,我会使用:

pmap(f, my_values)
Run Code Online (Sandbox Code Playgroud)

也许:

aux = @parallel (hcat) for ii=1:100000000
        f(my_values[ii])
      end
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用.朱莉娅抱怨工人不知道功能f,即我得到一个消息:

错误:过程2中未定义函数f

我怎样才能使功能˚F提供给所有工人呢?显然,一个"脏"的解决方案是对所有工人运行耗时的函数TrainModel,这可能是:

@everywhere f = TrainModel( ... )
Run Code Online (Sandbox Code Playgroud)

但是当我想要的只是结果f可供所有工作人员使用时,这将浪费cpu .

虽然我搜索了类似问题的帖子,但到目前为止我找不到答案......

提前致谢!最好,

N.

parallel-processing for-loop julia

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

我如何调度与两种类型有关的特征,其中第二种满足特征的类型是由第一种特征决定的?

说我有一个朱莉娅性状,其涉及两种类型:一种类型是一种"基地"类型的可满足一种局部性状,另一种是一个相关联的是唯一地由基类型确定类型.(也就是说,BaseType - > AssociatedType的关系是一个函数.)这些类型一起满足了我感兴趣的复合特征.

例如:

using Traits

@traitdef IsProduct{X} begin
    isnew(X) -> Bool
    coolness(X) -> Float64
end

@traitdef IsProductWithMeasurement{X,M} begin
    @constraints begin
        istrait(IsProduct{X})
    end
    measurements(X) -> M
    #Maybe some other stuff that dispatches on (X,M), e.g.
    #fits_in(X,M) -> Bool
    #how_many_fit_in(X,M) -> Int64
    #But I don't want to implement these now
end
Run Code Online (Sandbox Code Playgroud)

现在这里有几个示例类型.请忽略示例的细节; 它们仅仅意味着MWE,细节上没有任何相关内容:

type Rope
    color::ASCIIString
    age_in_years::Float64
    strength::Float64
    length::Float64
end

type Paper
    color::ASCIIString
    age_in_years::Int64
    content::ASCIIString
    width::Float64
    height::Float64
end

function isnew(x::Rope) 
    (x.age_in_years < 10.0)::Bool 
end
function coolness(x::Rope) 
    if x.color=="Orange" …
Run Code Online (Sandbox Code Playgroud)

traits julia

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

Python 与 Julia 自相关

我正在尝试使用 Julia 进行自相关并将其与 Python 的结果进行比较。他们怎么会给出不同的结果?

朱莉娅代码

using StatsBase

t = range(0, stop=10, length=10)
test_data = sin.(exp.(t.^2))

acf = StatsBase.autocor(test_data)
Run Code Online (Sandbox Code Playgroud)

10-element Array{Float64,1}:
  1.0                   
  0.13254954979179642   
 -0.2030283419321465    
  0.00029587850872956104
 -0.06629381497277881   
  0.031309038331589614  
 -0.16633393452504994   
 -0.08482388975165675   
  0.0006905628640697538 
 -0.1443650483145533
Run Code Online (Sandbox Code Playgroud)

Python代码

from statsmodels.tsa.stattools import acf
import numpy as np

t = np.linspace(0,10,10)
test_data = np.sin(np.exp(t**2))

acf_result = acf(test_data)
Run Code Online (Sandbox Code Playgroud)

array([ 1.        ,  0.14589844, -0.10412699,  0.07817509, -0.12916543,
       -0.03469143, -0.129255  , -0.15982435, -0.02067688, -0.14633346])
Run Code Online (Sandbox Code Playgroud)

python julia

20
推荐指数
2
解决办法
1597
查看次数

构造函数接受整数但不接受字符串

这有效:

struct Comic
    endpoint::String
end

function Comic(id::Int)
    url = "https://xkcd.com/$id/info.0.json"
    Comic(url)
end


Comic(1)
Run Code Online (Sandbox Code Playgroud)

它返回Comic("https://xkcd.com/1/info.0.json")

这不起作用:

struct Comic
    endpoint::String
end

function Comic(id::String)
    url = "https://xkcd.com/$id/info.0.json"
    Comic(url)
end


Comic("1")
Run Code Online (Sandbox Code Playgroud)

它杀死了 Julia 进程。

为什么第二个例子不起作用?

julia

20
推荐指数
2
解决办法
2089
查看次数