如何获取特定包的版本号?
显而易见的方法是获取所有已安装软件包的字典,然后筛选出感兴趣的软件包:
pkgs = Pkg.installed();
pkgs["Datetime"]
Run Code Online (Sandbox Code Playgroud)
获取所有已安装软件包的列表非常慢,特别是如果有很多软件包.
Julia连接字符串和整数值的最简单方法是什么?我想做的事情如下:
julia> foo = "test: "
"test: "
julia> bar = 3
3
julia> foobar = foo * bar
ERROR: `*` has no method matching *(::ASCIIString, ::Int64)
Run Code Online (Sandbox Code Playgroud) 我使用Mathematica进行符号数学计算.我打算换成另一种语言.Matlab(我用于标准计算的东西)包括这个功能,但我正在研究使用Julia的可能性,因为它似乎是未来.然而,似乎没有可用的象征工具(在官方文档中没有提到).显然,唯一可用的软件包(SymPy)在官方网站(http://pkg.julialang.org/)上说"测试失败" .
有谁能在朱莉娅这样做?
Julia中是否有一个函数返回所需类型的数组副本,即numpys astype函数的等价物?我有一个"任何"类型的数组,并希望将其转换为Float数组.我试过了:
new_array = Float64(array)
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误
LoadError: MethodError: `convert` has no method matching
convert(::Type{Float64}, ::Array{Any,2})
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}, !Matched::Int8)
convert(::Type{Float64}, !Matched::Int16)
...
while loading In[140], in expression starting on line 1
in call at essentials.jl:56
Run Code Online (Sandbox Code Playgroud)
我可以编写一个遍历数组的函数并返回每个元素的浮点值,但是如果没有内置方法来执行此操作,我会发现它有点奇怪.
我想在蛋白质序列中每10个字符插入一个换行符:
seq="MSKNKSPLLNESEKMMSEMLPMKVSQSKLNYEEKVYIPTTIRNRKQHCFRRFFPYIALFQ"
Run Code Online (Sandbox Code Playgroud)
在Perl中,它非常简单:
$seq=~s/(.{10})/$1\n/g ; # does the job!
perl -e '$seq="MSKNKSPLLNESEKMMSEMLPMKVSQSKLNYEEKVYIPTTIRNRKQHCFRRFFPYIALFQ"; $seq=~s/(.{10})/$1\n/g; print $seq'
MSKNKSPLLN
ESEKMMSEML
PMKVSQSKLN
YEEKVYIPTT
IRNRKQHCFR
RFFPYIALFQ
Run Code Online (Sandbox Code Playgroud)
在朱莉娅,
replace(seq, r"(.{10})" , "\n")
Run Code Online (Sandbox Code Playgroud)
不起作用,因为我不知道如何获取捕获组(.{10})并将其替换为自己+"\n"
julia> replace(seq, r"(.{10})" , "\n")
"\n\n\n\n\n\n"
Run Code Online (Sandbox Code Playgroud)
所以要做到这一点,我需要两个步骤:
julia> a=matchall(r"(.{1,10})" ,seq)
6-element Array{SubString{UTF8String},1}:
"MSKNKSPLLN"
"ESEKMMSEML"
"PMKVSQSKLN"
"YEEKVYIPTT"
"IRNRKQHCFR"
"RFFPYIALFQ"
julia> b=join(a, "\n")
"MSKNKSPLLN\nESEKMMSEML\nPMKVSQSKLN\nYEEKVYIPTT\nIRNRKQHCFR\nRFFPYIALFQ"
julia> println(b)
MSKNKSPLLN
ESEKMMSEML
PMKVSQSKLN
YEEKVYIPTT
IRNRKQHCFR
RFFPYIALFQ
# Caution :
a=matchall(r"(.{10})" ,seq) # wrong if seq is not exactly a multiple of 10 !
julia> seq
"MSKNKSPLLNESEKMMSEMLPMKVSQSKLNYEEKVYIPTTIRNRKQHCFRRFFPYIAL"
julia> matchall(r"(.{10})" ,seq) …Run Code Online (Sandbox Code Playgroud) 我试图测试一个字符串是否包含一个特定的子字符串,然后如果它包含它出现的索引。我怎么能在朱莉娅做到这一点?
我在 Julia 中创建了一个包(我们称之为 package_name);文件结构已经与 Project.toml 和 Manifest.toml 文件一起生成,并且在创建包时我已经添加了一些依赖项。
我忘记添加依赖项,我想让 REPL 显示:
(package_name) pkg >
Run Code Online (Sandbox Code Playgroud)
这样我就可以输入
add dependency_name
Run Code Online (Sandbox Code Playgroud)
我如何让 REPL 来显示这一点?我想我需要转到包文件夹并(重新)激活该包,但我无法使用 cd 导航到它。
显示我应该在 REPL 中输入的确切命令会很有帮助。
我是 julia 的新手,我正在努力将 julia 代码重写为 python 代码。我看到了一些使用.==表达式的代码。我无法理解这是什么意思。所以我在网上搜索它,但找不到答案。有人可以告诉我.==julia 中的内容及其在 python 中的等价物吗?
仅供参考,它是这样写的。
x = sum(y .== 0) # y is array
Run Code Online (Sandbox Code Playgroud) 在 julia 中,人们可以找到(据称)对实数集合的min/minimum和max/ 的有效实现maximum。由于这些概念不是为复数唯一定义的,我想知道是否已经在某处实现了这些函数的参数化版本。
我目前正在对感兴趣的数组的元素进行排序,然后取最后一个值,据我所知,这比找到具有最大绝对值(或其他值)的值要昂贵得多。
这主要是为了max在复杂数组上重现函数的 Matlab 行为。
这是我当前的代码
a = rand(ComplexF64,4)
b = sort(a,by = (x) -> abs(x))
c = b[end]
Run Code Online (Sandbox Code Playgroud)
可能的函数调用看起来像
c = maximum/minimum(a,by=real/imag/abs/phase)
Run Code Online (Sandbox Code Playgroud)
使用提供的解决方案编辑Julia 1.5.3 中的一些性能测试
function maxby0(f,iter)
b = sort(iter,by = (x) -> f(x))
c = b[end]
end
function maxby1(f, iter)
reduce(iter) do x, y
f(x) > f(y) ? x : y
end
end
function maxby2(f, iter; default = zero(eltype(iter)))
isempty(iter) && return default …Run Code Online (Sandbox Code Playgroud)