标签: julia

Julia请求脚本中的用户输入

如何从Julia中运行的脚本请求用户输入?在MATLAB中,我会这样做:

result = input(prompt)
Run Code Online (Sandbox Code Playgroud)

谢谢

julia

27
推荐指数
2
解决办法
1万
查看次数

我有一个用 Julia 编写的高性能函数,如何从 Python 中使用它?

我找到了一个 Julia 函数,可以很好地完成我需要的工作。如何快速集成它以便能够从 Python 调用它?

假设函数是

f(x,y) = 2x.+y
Run Code Online (Sandbox Code Playgroud)

从 Python 中使用它的最佳和最优雅的方法是什么?

python python-3.x julia pycall

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

如何找到朱莉娅的版本号?有ver()命令吗?

我安装了Julia studio 0.4.4,发现它不支持多行注释,#=...=#所以我想找到它正在运行的Julia版本.

在Matlab中,一种类型的命令ver不仅显示了matlab的版本号,还显示了所有安装的工具箱的版本号.

我用谷歌搜索了一段时间,但无法为朱莉娅找到类似的命令.朱莉娅有这样的命令吗?

julia> Version
ErrorException("Version not defined")
julia> ver
ErrorException("ver not defined")
julia> ver()
ErrorException("ver not defined")
julia> Version()
ErrorException("Version not defined")
Run Code Online (Sandbox Code Playgroud)

julia

26
推荐指数
2
解决办法
9739
查看次数

在构建模块时,Julia中的"using"和"import"有什么区别?

问题:当我构建自己的模块时,Julia usingimportJulia有什么区别?

我基于阅读文档的猜测: using用于将另一个模块带入当前模块的名称空间.import用于将特定类型/函数/变量从其他模块引入当前模块的名称空间.

那么,我有多难?

julia

26
推荐指数
3
解决办法
6017
查看次数

Julia:将数字字符串转换为float或int

我正在尝试将从数据库中提取的数字数据写入Float64[].原始数据是::ASCIIString格式化的,因此尝试将其推送到数组会出现以下错误:

julia> push!(a, "1")
ERROR: MethodError: `convert` has no method matching convert(::Type{Float64}, ::ASCIIString)
This may have arisen from a call to the constructor Float64(...),
since type constructors fall back to convert methods.
Closest candidates are:
  call{T}(::Type{T}, ::Any)
  convert(::Type{Float64}, ::Int8)
  convert(::Type{Float64}, ::Int16)
  ...
 in push! at array.jl:432
Run Code Online (Sandbox Code Playgroud)

试图直接转换数据不出所料引发同样的错误:

julia> convert(Float64, "1")
ERROR: MethodError: `convert` has no method matching convert(::Type{Float64}, ::ASCIIString)
This may have arisen from a call to the constructor Float64(...),
since type constructors fall back to …
Run Code Online (Sandbox Code Playgroud)

julia

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

朱莉娅没有价值

什么是NonePython中值的Julia等价物?(如图所示这里在内置常量).

julia

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

通过改变像Dylan,Julia和Seph这样的主要括号,Clojure会失去什么?

三种lispy homoiconic语言,Dylan,JuliaSeph都离开了前导括号 - 所以在Common Lisp中的假设函数调用看起来像:

(print hello world)
Run Code Online (Sandbox Code Playgroud)

看起来像下面的假设函数调用

print(hello world)
Run Code Online (Sandbox Code Playgroud)

用上面提到的三种语言.

如果Clojure沿着这条道路走下去 - 为了实现这一目标会有什么牺牲?

推理:除了Clojure中令人惊讶的懒惰功能数据结构,以及地图和seqs的改进语法,对并发的语言支持,JVM平台,工具和令人敬畏的社区 - 它是'LISP'的独特之处在于给出同音性的前导括号,它给出了提供语法抽象的宏.

但如果你不需要括号 - 为什么要这些呢?我能想到保留它们的唯一论点是

(1)重用emacs中的工具支持

(2)促使人们"在LISP中思考"而不是试图将其视为另一种程序性语言)

lisp language-design clojure dylan julia

25
推荐指数
5
解决办法
2992
查看次数

julia-0.6中函数定义中的`where`

我试图在阅读发行说明的基础上理解Julia v0.6中的新类型系统.

任何人都可以告诉我什么

inv(M::Matrix{T}) where T <: AbstractFloat
Run Code Online (Sandbox Code Playgroud)

给了我与使用经典不同的东西

inv{T<:AbstractFloat}(M::Matrix{T})
Run Code Online (Sandbox Code Playgroud)

julia

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

类型注释会提高还是阻碍抽象类型的性能?

Julia 文档似乎在何时使用类型注释方面存在冲突。

来自类型文档

::运算符可用于将类型注释附加到程序中的表达式和变量。这样做有两个主要原因:

  1. [...]
  2. 向编译器提供额外的类型信息,这可以在某些情况下提高性能。

来自性能提示

如果类型是抽象的或在运行时构造的,类型注释不会增强(实际上可能会阻碍)性能。

为了便于说明,假设我有以下层次结构:

abstract type Character end
struct SpaceMarine <: Character end
# I've used the abstract type Character as a type annotation.
svetlana :: Character = SpaceMarine() 
Run Code Online (Sandbox Code Playgroud)

像我一样使用类型注释(注意它是抽象的)会阻碍性能还是有帮助?

在这种情况下,svetlana只能是 的子类型Character,这是我需要的行为。

就像在 C# 或 Java 中一样,您可以做Character svetlana = new SpaceMarine(),svetlana只能是 的任何子类型Character

如果使用类型注释会损害性能,我该如何保留 的svetlana类型Character

我不想有人写svetlana = "Space Marine"。在本例中,它现在是一个String.

types julia

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

什么是通过列或行操作的惯用Julia样式?

抱歉,如果这相当普遍 - 虽然仍然是一个编码问题.

有一点时间在我的手上,我一直在努力学习一点Julia.我认为一个好的开始是复制R microbenchmark功能 - 所以我可以无缝地比较R和Julia功能.

例如,这是microbenchmark我试图模拟的2个R函数的输出:

Unit: seconds
expr                    min        lq    median        uq        max      neval
vectorised(x, y)    0.2058464 0.2165744 0.2610062 0.2612965  0.2805144     5
devectorised(x, y)  9.7923054 9.8095265 9.8097871 9.8606076 10.0144012     5
Run Code Online (Sandbox Code Playgroud)

所以到目前为止,在朱莉娅,我正在尝试编写惯用语和希望可理解/简洁的代码.因此,我用列表推导替换了一个双循环来创建一个时序数组,如下所示:

function timer(fs::Vector{Function}, reps::Integer)
#    funs=length(fs)
#    times = Array(Float64, reps, funs)
#    for funsitr in 1:funs
#        for repsitr in 1:reps
#            times[reps, funs] = @elapsed fs[funs]()
#        end
#    end

    times= [@elapsed fs[funs]() for   x=1:reps, funs=1:length(fs)]
    return times
end …
Run Code Online (Sandbox Code Playgroud)

r julia

24
推荐指数
2
解决办法
5629
查看次数

标签 统计

julia ×10

clojure ×1

dylan ×1

language-design ×1

lisp ×1

pycall ×1

python ×1

python-3.x ×1

r ×1

types ×1