我可以在文件“example.jl”中执行什么操作来退出/返回对命令行中include()的调用
julia> include("example.jl")
没有朱莉娅本身quit()只会终止julia本身
编辑:对我来说,这在交互开发代码时很有用,例如,当满足某个条件时,包含一个测试文件并从执行返回到julia提示符,或者只编译我当前正在处理的测试,而不重新组织代码。我不太确定您要做什么,但听起来您最好将代码作为函数编写,并使用返回来退出。您甚至可以在include中调用函数。@Dani
我有一个字符串,例如z[2],我想在上下文中eval它,例如Dict(:z=>1:10)
最好的方法是什么
我可以做得很好,但速度很慢
function replace_expr(expr, d::Dict)
return expr
end
function replace_expr(s::Symbol, d::Dict)
get(d, s, s)
end
function replace_expr(expr::Expr, d::Dict)
return Expr(r
如何在atom的juno插件中启动带有参数的julia解释器(-p4)呢
例如,在命令行中,可以调用:
julia-p4
您可以使用4个工作进程启动julia解释器。这不是在Juno中如何执行的答案,而是一个一般提示:您还可以在julia进程中管理工作进程。下面是REPL中的一个示例
julia> addprocs(4)
4-element Array{Int64,1}:
2
3
4
5
julia> rmprocs(2)
:ok
julia> workers()
我希望有人能理解这一点。我已经尝试连接Julia字符串一段时间了,但我仍然有一个问题。我有一个循环,我试图连接循环中的字符串和一个数字,然后将新值添加到一个数组中,当我在循环中打印值时,一切都很好,但打印数组时,数组的所有元素再次拆分为单个字符。
我的代码如下
a = 1
for i in nums_loop
i_val = i[a]
append!(const_names, (string(x, string(a))))
println(string(x, stri
因此,正如标题所解释的:
有没有办法将位数组{2}类型数组转换为数组{Bool,1}:类型数组
PD:问题的核心是,我试图用位数组{2}对数组{float64,2}求值,我不断得到以下错误:
错误:边界错误:尝试访问索引[Base.Slice(Base.OneTo(20))、Base.LogicalIndex(Bool[0;0;…;0;0])、Base.Slice(Base.OneTo(1))]处的20×1数组{Float64,2}
提前谢谢
@石匠
编辑:
因此,我一直在尝试分离数组{Floa
我找不到Julia是否提供操作系统特定的字符来分隔类似路径的字符串,例如PATH=c:\windows\systems32;c:\windows;。。。以及Linux中类似的环境变量。操作系统特定,因为Windows正在使用“;”和Linux:”。我都找不到一个助手函数,它已经进行了拆分,只是没有公开分隔符字符。但也找不到
自己定义这些很容易,我只是惊讶没有找到它们
非常感谢您的帮助不,默认情况下没有路径列表分隔符。你能做的就是
Sys.iswindows() ? ';' : ':'
不过,最
我用卡方分布的值生成了一个向量:
using Plots, Distributions, Random
c = rand(Chisq(11), 3)
3-element Vector{Float64}:
5.160148845738397
6.715592059742631
13.186986070816523
如何对该向量的值进行四舍五入或下限设置,以获得:
5
6
13
floor.(Int,c)(或floor.(c)如果您想要Float64结果。floor.(Int,c)(或
我构建了一个新的向量类型:
type MyType
x::Vector{Float64}
end
我想将许多标准方法(如加法、减法、元素比较法等)扩展到我的新类型。我是否需要为它们中的每一个定义一个方法定义,例如:
+(a::MyType, b::MyType) = a.x + b.x
-(a::MyType, b::MyType) = a.x - b.x
.<(a::MyType, b::MyType) = a.x .< b.x
+(a::MyType,b::MyTyp
我不熟悉Julia编程语言,但是,我正在拟合线性混合效果模型,我发现很难将固定和随机效果估计保存在.csv文件中
可以找到一个示例代码:
using MixedModels
@time modelOutput = fit(lmm(Y~ A + B + (0 + A | group), data))
关于如何使用数据帧获得固定(fixef(modelOutput))和随机(ranef(modelOutput))效果,有可用的参考资料
谢谢你的建议。好的,我真的花了时间为你做了这件事。CoefTa
我遵循julia的文档:
julia> :(a in (1,2,3))
:($(Expr(:in, :a, :((1,2,3)))))
既然:(a in(1,2,3))==:($(Expr(:in,:a,:((1,2,3))),为什么朱莉娅要用这种方式表达这个表达式呢?$到底是什么意思?在我看来,$只是计算全局范围内的下一个表达式。我发现文档对此不清楚。$是插值命令,Julia使用此符号来插值字符串和表达式:
julia> a=1;
julia> "test $a" # =&
我假设Julia的struct与C中的struct一样。所以我不知道为什么会出现错误:
类型int64没有字段数据
Julia中的函数返回其中的最后一个表达式。在这种情况下,返回的是data=1,即data而不是MyData的新实例。只需在data=1之后添加带有new(data)的行,即可返回MyData的新实例,它将正常工作。通常您希望使用所谓的“外部构造函数”,即在类型本身定义之外定义的同名函数。您还希望将每个字段的类型指定为具体类型,例如本例中的Int:
struct MyData
build.jl
run(`sudo -S mkdir test`)
运行Pkg.build(“TestBuild”)时,将没有机会输入密码
julia> Pkg.build("TestBuild")
INFO: Building TestBuild
[sudo] password for guo:
==============================[ ERROR: TestBuild ]==============================
LoadErr
我永远都不记得怎么做了
你怎么能去
从向量(大小(n1))到列矩阵(大小(n1,1))
或者从矩阵(大小(n1,n2))到数组{T,3}(大小(n1,n2,1))
或者从数组{T,3}(大小(n1,n2,n3))到数组{T,4}(大小(n1,n2,n3,1))
等等
我想知道如何获取数组并使用它定义一个新的数组,该数组具有额外的单态尾随维度。
也就是说,与挤压相反,你可以通过重塑来实现这一点
您可以为此定义一个方法:
add_dim(x::Array) = reshape(x, (size(
假设我有一个设计用于存储信息的类型,包括指向其他变量的链接:
type MyList
a::Int64
b::Int64
connections::Array
MyList(a, b) = new(a, b, [])
end
此链接函数将第二个变量的名称放入第一个连接列表中(如果我知道如何操作):
然后我可以通过以下方式检查连接:
a1.connections
-> [a2, a3, a4]
这样做:
for conn in a1.connection
我对julia和atom都是新手,我想把他们两人都安排在一起。我安装了juno for atom,正在尝试运行julia脚本。我将Julia的包目录从~重新定位,因为在我的工作场所,该目录中的空间是有限的
如何使atom识别包位于不同的目录中
我目前正在CENTOS机器上工作。找到您的.juliarc.jl文件,然后插入行
ENV["JULIA_PKGDIR"] = # your package directory
顺便说一句,这个问题与Atom无关。julia安装跟踪软件包目录。如果在she
我试图找到一个向量的索引,其中元素包含在另一个向量中。例如,让a=[2,4,6,8],b=[2,6],所需的输出将是向量[1,3]。我尝试了find(a.in b),但是a.in b是一个语法错误。(a,b)中的向量化形式引发维度不匹配错误,因为无法将向量广播到公共形状,而在(a,b')中允许广播,结果:
true false
false false
false true
false false
这不太理想。有什么建议吗?如前所述,参考问题/答案可用于解决此问题
julia>
令人惊讶的是,我找不到一个直接的答案。此页面回答了2015年升级Julia的问题,并链接到Mac OS的此页面,但(a)后一页面以一个巨大的“此水龙头未积极维护”警告开始,(b)升级说明仅说明如何获取“最新开发版本”,这不是我想要的(我想要Julia 0.7,而不是1.0)
那么,如何在Mac OS X上将Julia从0.6升级到0.7?我使用命令“brew cask install Julia”安装了Julia 0.6。由于没有人回答您的问题,即使我不是一个好作家,我也会这样做
首先使用“br
我一直在用茱莉亚0.5。以下代码有效,但不适用于0.7:
a=[5,5,6,6]
b=[0,0,1,1]
c=find((a.==6) & (b.==1))
由于Windows/GitHub的问题,我现在需要使用0.7。但是语法已经有了相当大的改变。如果我只有一个参数,我可以使用“findall”而不是“find”,例如
c=findall(a.==6)
但不支持使用“&”。有人知道如何在0.7中编写此代码吗
非常感谢您的补充就足够了。在&:
你加上就够了。在&:
令人惊叹的非常感谢
我想做一个函数,如果我输入一个参数请求一个确定性响应,它将始终返回相同的数字,否则将给出一个请求的伪随机数。不幸的是,我能找到的唯一方法是重置全局随机种子,这是不可取的
有没有一种方法可以为一次伪随机数抽取设置随机数种子,而不影响全局种子或该种子的伪随机数序列的现有进程
例
最简单的解决方案是使用新分配的RNG,如下所示:
using Random
function get_random(n::Int, deterministic::Bool)
if deterministic
在Julia 1.0中运行以下代码段
anon = Array{Any}(undef, 2)
for i = 1:2
anon[i] = ()-> println(i)
i += -1
end
anon[2]()
anon[1]()
结果是1和0。为什么不是2和1(创建i时的值)?我知道I+=-1不会影响for循环。给出了一个解释:对于每个循环,Julia都为I分配一个新的绑定,因此在每次迭代中I指向不同的内存位置
我试图用数值方法解朱莉娅的一个非线性方程组。我用的是纽顿方法。我唯一不知道怎么做的就是计算雅可比矩阵。到目前为止,我找不到计算偏导数的函数
我的系统:
f(x1, x2) = 2*x2^2+x1^2
g(x1, x2) = (x1-1)^2 + (x2-1/2)^2
谢谢你的支持,
顺致敬意,
Szymon.让我写下我在评论中提到的答案。您可以使用自动微分来计算偏导数:
julia> using ForwardDiff
julia> f(x) = 2*x[2]^2+x[1]^2
我原以为下面的代码会用随机的1和0填充E,但事实并非如此。我不明白为什么
Pkg.add("StatsBase")
using StatsBase
function randomSample(items,weights)
sample(items, Weights(weights))
end
n = 10
periods = 100
p = [ones(n,periods)*0.5]
E = fill(NaN, (n,periods))
for i in 1:periods
标签: Julia
nonlinear-optimization
我有一个参数估计问题,可以通过非线性最小二乘优化来解决。我有一个带有两个未知参数的分析模型x[0]和x[1]。我有一个测量数据样本的向量,我用它编写成本函数
function cost_function(x)
measured = data_read() # This is where I read my measured samples
model = analytical_model(x) # I calculate the values from my
你能帮助我如何在Julia v.1.1.1中用Gap制作一个CPLEX模型吗?
在我以前使用的版本中
Tsp=Model(solver=CplexSolver(CPX_PARAM_EPGAP=0.00009))
但新版本在模型运行时出现了错误
Model(with_optimizer(CPLEX.Optimizer),CPX_PARAM_EPGAP=0.00009)
ERROR: MethodError: no method matching Model(; CPX_PARAM_EPGAP=
标签: Julia
package-management
目标:使用Pkg模块的status命令获取已安装的软件包详情
程序:
$ julia
julia> ]
(v1.1) pkg> status
输出:
ERROR: Pkg.TOML.ParserError(258, 263, "duplicate key `Dates`")
Stacktrace:
[1] parse(::IOStream) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1
标签: Julia
julia-jumpijulia-notebook
我在模拟循环中遇到了一个问题。问题是新矩阵的长度与旧变量的长度不同。我不确定问题是来自变量的初始值还是来自模拟循环
我使用的是juliav1.0.3
using Distributions
using DataFrames
n=5000
t=15000
gamma = 2;
delta = 0.057;
betta = 0.99;
alfa = 0.47;
miz = 1;
roz = 0.75;
我有一些代码可以计算一个矩阵中的每个笛卡尔坐标到另一个矩阵中的每个其他坐标之间的距离。对于每个坐标,将返回最小距离以及生成最小距离的坐标的索引位置
function MED3D(m1, m2)
n1::Int = size(m1,1)
Dist = SharedArray{Float64}((n1,3))
@sync @distributed for k in 1:n1
Dist[k,:] = MD3D(m1[k,:], m2, k)
end
我正在使用mate-in-shell命令查找REQUIRE文件,但找不到它。
它与Pkg有关
shell> mate ~/.julia/
compiled/ clones/ prefs/ registries/
environments/ conda/ logs/ packages/
您正在使用Julia 0.7+。
这意味着任何地方都没有REQUIRE文件
您可能正在寻找全局(或其他共享)环境的Project.to
我试图求解一个n*n矩阵U,它满足各种约束,包括一些涉及子矩阵的逆的约束。然而,跳跃似乎不能处理反转,至少在没有一些额外的可逆性规范的情况下。下面是n=2的问题示例
using JuMP, Ipopt
m = Model(with_optimizer(Ipopt.Optimizer))
A = [5 7; 7 10]
B = [9 13; 13 19]
C = [3 4; 4 6]
nnodes = 2
@variable(m, U[1:nnodes, 1:nnodes])
A1 = U *
假设我有
c = RGB{Normed{UInt8,8}}[
RGB{N0f8}(1.0,1.0,1.0) RGB{N0f8}(0.0,0.502,0.0) RGB{N0f8}(1.0,0.0,0.0);
RGB{N0f8}(1.0,0.0,0.0) RGB{N0f8}(1.0,1.0,1.0) RGB{N0f8}(0.0,0.0,0.0);
RGB{N0f8}(0.0,0.502,0.0) RGB{N0f8}(0.0,0.0,0.0) RGB{N
我想弄清楚Julia包是如何工作的,因为我喜欢集装箱化的环境。我真的很挣扎
在python中,我会做一些类似于condacreateenv--nameds的事情来创建一个环境,然后安装我将使用condaactivateds;康达安装
我想让Julia创建一个虚拟环境,但没有多大成功
从Julia REPL中,我可以键入]转到软件包管理器,然后我可以使用激活ds创建一个环境。从这里我可以添加重要的包addijuliadataframes-Plots
此时,我的环境变成了实际的文件夹,这很好
然后我
我正在冥王星笔记本上做一个编码项目。现在还为时尚早,但我很好奇为什么在上面的屏幕截图中,在quadorder旁边没有显示1000的值。它似乎输出了所有其他东西 它是在您的代码中触发。然而,我不认为这是预期的行为。它应该是一个注释,但解析器可能会看到并认为它是代码的一部分。
如果你把它放在两个引号之间,那么这就不会发生。
也就是说,这应该按照预期工作:
quadorder = 1000 # like python Julia doesn't require ';'
否则,如果你不把它放在最后,它
我最近开始在Centos7服务器上使用Julia进行计算任务。但是我遇到了一个关于Julia使用的线程的问题。该服务器配备了80个虚拟CPU,在计算过程中无法使用其大部分CPU
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 80
On-line CPU(s) list:
标签: Julia
signal-processingconvolution
这是你的电话号码。我想为两个简单的信号x[n]=0.2^n*u[n]和h[n]=u[n+2]写一个卷积,对于一些n值。我就是这样实施的:
using Plots, DSP
x(n) = if n<0 0 else 0.2^n end
h(n) = if n<-2 0 else 1 end
n = -10:10
conv(h.(n),x.(n))
知道如何修复它吗?我通过一个新的REPL会话运行得很好:
julia> using Plots, DSP
[ Info: Pre
以下代码可以正常工作:
f(x) = 2*x
[1, 2, 3] |> f
但是,以下代码失败:
g(x) = x^2
[1, 2, 3] |> g
Closest candidates are:
^(::Union{AbstractChar, AbstractString}, ::Integer) at strings/basic.jl:718
^(::Complex{var"#s79"} where var"#s79"<:
所以,今天我决定试试Julia,我遇到了一些奇怪的事情,我不太明白原因,也找不到一个合适的答案来回答我的搜索问题,所以我来了
首先,我希望有一些东西可以作为Python的基准,我决定使用这段非常简单的代码
def test():
start = time()
a = 1
while a < 10000000:
a+=1
print(time() - start
设置:假设我有一个相当详细的软件(Julia),涉及几个模块的交互。我觉得它跑得比应该的慢。通常是函数,即编译器无法提前确定输出类型的函数
问题:如何检测这些类型的不稳定函数
我目前所做的:我使用分析工具,例如@tholy包来检测瓶颈,前提是类型不稳定的函数将出现在这里(由于它们的运行时间过长)。但真正好的是某种调试工具,在例程运行后,它将抛出一个函数列表,其中编译器无法提前确定输出类型。这可能吗 你可以试试探查器说的速度慢的比特
Julia 0.4也有。除了IainDunning的优秀建议外,
我正试图使用Julia的ccall函数与C库接口。所有类型和指针都是正确的,下面的函数调用成功地返回了正确的答案(为简洁起见,此处未显示变量定义和设置)
但是,如果我希望将函数名生成为符号,然后将其用作ccall的参数,则会失败
fname = symbol(string("vDSP_conv", "D"))
ccall((fname , libacc), Void,
(Ptr{T}, Int64, Ptr{T}, Int64, Ptr{T}, Int64, UIn
我尝试使用一个单元格作为Julia函数的输入,如下所示
U=单元(2)
U[1]=零(3,3)
U[2]=零(3,3)
函数f_test{S在Julia中,矩阵的大小不是其类型的一部分。因此这里不需要单元格。事实上,这很好:
U = Matrix{Float64}[zeros(3, 3), zeros(3, 1)]
这里我们创建了一个向量of矩阵{Float64}矩阵{Float64}是数组{Float64,2}的类型别名,意思是“二维数组的Float64。U的类型是数组{Float64,2}
我正在尝试在防火墙后面安装julia 0.5,也就是说
没有互联网和管理权限和
我还需要编译源代码
我已经遵循了为这个过程描述的所有标准说明(在git hub上)
然而,我的编译失败了,因为它要求GLIBC2.14版本,而我只安装了2.04版本。
我担心,即使我可以安装这个版本的GLIBC,它也会要求我在那之后再安装其他软件
我的问题是:
有没有办法安装所有需要的依赖项:
git克隆后的“make-C deps getall”,显然没有安装所有这些
多谢各位
Boian我建议只使用通用二进制
是否有人可以解决我遇到的此宏错误,它仅在版本0.6中开始发生:
mutable struct Foo
x::Int
end
macro test(myfoo)
quoteblock =
quote
myfoo.x += 1
end
return quoteblock
end
function func(myfoo)
@test myfoo
println(myfoo.x)
end
foo = Foo(3)
func(foo
刚刚在我的程序中发现了一个令人讨厌的错误,因为Julia在定义闭包时不复制数组。这使得继续编程变得困难。这种设计选择的动机是什么
有没有关于将我的闭包状态与程序状态分离的建议
例如
l = [2 1; 0 0];
f = x -> l[2,2];
那么f(1)=0,但是如果你改变l[2,2]=1,那么f(1)=1 你认为这是一个“终结”的假设不成立l不是一个“闭合”变量。它只是对从“外部”作用域继承的变量的引用(因为它没有在匿名函数中被本地重新定义)
下面是一个真正的闭包示例:
变量l现
我想把矩阵A的每一行乘以相同的向量v。比如说
A =[1.0 3.0; 1.0 1.0]
v = [1.0, 2.0]
我想输出
[1.0 6.0; 1.0 2.0]
到目前为止,我正在做:
(v.*A')'
但我怀疑这在计算上是否有效,因为我将矩阵转置了两次
请注意,这个问题是针对Matlab()回答的。您至少有以下选项:
(v.*A')”(OP的建议)
v.*A(最短路径)
mapslices(行->v.*行,A,2)
从@AborAmmar的帖子手动执行(最快方式)
i、 e
我使用的是colors.jl包,有RGB值需要转换为十六进制字符串三元组值。最好的方法是什么?在colors.jl中找不到转换函数
谢谢您可以定义一个自定义的结构,它可以从AbstractRGB构造,并且具有适当的show重载,如中所示
import Base: show
using ColorTypes
struct RGBPacked
r::UInt8
g::UInt8
b::UInt8
function (::Type{RGBPacked})(c::AbstractRG
理想情况下,我希望在R中获得与之等价的SessionInfo(),它列出R的版本以及当前加载的所有库及其版本
我错过了Julia中类似的功能。我认为Pkg应该具备您需要的功能:
using Pkg
Pkg.status()
或者使用Julia 1.0.0包管理器,您可以:
# Press the `]` key to access the package manager, then:
(v1.0) pkg> status
# Press backspace key to exit bac
我正在使用一个在for循环中包含许多函数调用的程序。简而言之,是这样的:
function something()
....
....
timer = zeros(NSTEP);
for it = 1:NSTEP # time steps
tic = time_ns();
Threads.@threads for p in 1:2 # Star parallel of two sigma functions
Threads.
标签: Julia
color-paletteplots.jlcolor-blindness
我目前正在Julia中使用Plots包,pyplot作为后端。我可以选择调色板并通过
pyplot(color_palette=:delta)
Plots.plot(x, y)
根据下面的Okade和Ito,定义和使用自定义调色板的语法是什么,以实现色盲友好性?谢谢
只需传递一个RGB矢量-请参阅此处的文档,但该特定调色板实际上已内置到绘图中-因此,您可以在绘图前指定theme:wong2来获得它,它将在会话期间更改调色板和颜色渐变。只需传递一个RGB矢量-请参阅此处的文档,但该特定调色板实际
对我来说,这应该会产生字符串no,但是我得到
test = [1, 1, 1, 1]
ifelse(isassigned(test, 5), test[5], "nope")
这是一个bug还是预期的功能
目前,我正在使用
BoundsError: attempt to access 4-element Array{Int64,1} at index [5]
但这在列表理解中不是很清晰。使用:
if isassigned(test, 5) test[5] else &qu
我想在Julia中有一个算法,取决于$n$,这样它可以生成单位的n根
(1,w^{1},w^{2},…,w^{n-1}。这样,对于每个1\leq i\leq n,我们有(w^{i})^{n}-1=0)
非常感谢您的合作
julia> roots(n) = map(cispi, range(0, 2, length=n+1)[1:end-1])
roots (generic function with 1 method)
julia> roots(8)
8-element Vecto
我有一个常微分方程,想求解它,并绘制一些初始条件的解。开始时,我决定做一个“for”来增加初始条件的值,然后一个接一个地绘制解决方案
using DifferentialEquations, Plots
for i = -2.00:0.25:2.00
f(x,p,t) = x-x^3
x0 = i
tspan = (0.00,2.00)
prob = ODEProblem(f,x0,tspan)
sol = solve(prob)
if i==-
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 85 页