我发现在julia中使用模块相当于python中的from Module import*。是否有任何方法可以从模块导入单个函数或变量。如果您有一个带有功能栏的模块Foo或您想要导入的其他特定对象,您可以执行以下操作:
import Foo: bar
这只会将bar带入范围。如果您有一个带有功能条的模块Foo或其他您想要导入的特定对象,您可以执行以下操作:
import Foo: bar
这只会将bar带入范围。您可以使用
using Module.func
如果您还希望能够使用新方法扩展函
为什么我会收到下面的错误消息?(我对Julia的元编程相当陌生。)谢谢
这是一个bug,问题记录在这里:
从那以后它就被修好了。正如在对这个问题的评论中所指出的,如果你被困在一个未修复的Julia版本上,有一些黑客的解决方法,但希望你能升级。看起来像是一个在0.4上修复的bug,我得到了Julia>macroexpand(:(b.$d.c)):(b.e.c)输出versioninfo():Julia version 0.4.0-dev+4630提交f299fed(2015-05-04 14:2
在给定范围内使用fzero时,我似乎找不到一个选项来指定收敛公差级别,例如,沿
wageresult= fzero(fbargsolve, wageguess0, [wagemin,wagemax], ftol=1e-5,xtol=1e-5)
有什么想法吗
当我以下面指定的方式使用它时,我得到了一个收敛失败,我认为这是因为默认公差对于我来说过于严格:
wageresult= fzero(fbargsolve, wageguess0, [wagemin,wagemax])
错误消息是“收敛失败
标签: Julia
curve-fittingnon-linear-regression
为什么下面的代码不起作用
xa = [0 0.200000000000000 0.400000000000000 1.00000000000000 1.60000000000000 1.80000000000000 2.00000000000000 2.60000000000000 2.80000000000000 3.00000000000000 3.80000000000000 4.80000000000000 5.00000000000000 5.200000000
为了练习Julia,我使用迭代器接口实现了一个包含一些固定步长ODE解算器(Euler、Runge Kutta、Bulirsch Stoer)的小模块
我的想法是使用多重分派将函数next的正确方法应用于特定的迭代器,但是Euler和Runge-Kutta迭代器类型(实际上是不可变的)使用相同的数据
因此,我必须在以下两者之间做出选择:
创建两个不可变的类型,除了名称或
将一个唯一的不可变的与一个附加字段(比如解决方法)打包,并使用分支而不是多次分派来解决此问题
这两个选择对我来说都很笨拙(尤其
我想澄清一下朱莉娅的性格。这是否意味着如果我在for循环的开始处放置@inbounds
@inbounds for ... end
然后,只有“一层”的边界内传播,因此,如果该边界内有for循环,@inbounds不会在其中关闭边界检查吗?如果我使用@propagate_inbounds,它将进入嵌套的for循环中
说@inbounds总是战胜@boundscheck是正确的吗?如果函数不是内联的,唯一的例外情况是,这只是以前的“一层”规则的一种情况,因此@propagate\u inboun
我有Julia中带有标题的数据帧,但我需要将其转换为数组进行一些过滤,有一些人建议使用类似的帖子
使用:
若要从dataframe获取数组,但此方法不适用于带有标头的dataframe,有什么建议吗
数据帧格式:
FP | C1 | Cz | C2 ....
* | * | * | * ....
. | . | . | . ....
. | . | . | . ....
. | . | . | . ....
您是否尝试过转换(矩阵,虹膜[:,1:3])?
e、
我可以这样在Matlab中编写函数:
function res=resid(theta,alpha,beta);
RHS=[];
LHS=[];
RHS= theta-alpha;
LHS= theta*beta;
res = (LHS-RHS);
我们设置参数,调用函数:
alpha=0.3;beta=0.95;
a01=[1.0;1.0];
th=fsolve('resid',a01,[],alpha,beta)
这将返回[6.0;6.0]。选项“[]”是否向F发出信号,表示输入是矢量
如何将数据写入HDF5中的复合表,并将其追加到具有可变长度字符串的列和各种标准类型(Int64、Float64、Bool)的其他列中
基本知识以某种形式存在于朱莉娅身上。使用HDF5组的C接口并编写完全在Julia中实现的自定义HDF5文件,但我还没有找到创建、写入和附加到此类复合表的方法
我的目标是要有一个文件,其中存储的数据,从一些仪器,这是明确的注释。随着更多的数据进入,它将定期附加到这些HDF5文件中。需要一个二进制文件来将文件保持在可管理的大小,并且需要一个通用标准来实现我们组中使用的
我已经通过ppa安装了Atom
sudo add-apt-repository ppa:webupd8team/atom
sudo apt install atom
然后我通过Atom中的“+安装”部分中的uber-Juno安装了Juno IDE
在这个阶段,当我试图从Atom中的控制台启动Julia时,出现了一个奇怪的错误:
我在跑步
Atom : 1.26.1
Electron: 1.7.11
Chrome : 58.0.3029.110
Node : 7.9.0
在Li
当我跑的时候
t=(一=“一”,二=2)
类型(t)
作为回应,我得到了
NamedTuple{(:1,:2),Tuple{String,Int64}
但是当我跑的时候
t=(one=“one”)
类型(t)
我得到字符串作为类型
是否可以只使用一个命名值设置一个命名元组,以便访问例如t[1]和t.one并返回“one”?放一个逗号,即
julia> t = (one = "one",)
(one = "one",)
julia> typeof(t)
NamedTuple{(:on
(仍然)朱莉娅是新来的,所以请容忍我。我有一个文件Pkg.jld,它与julia v0.6安装的软件包版本一起保存。我安装了正确的JLD,但当我执行load(“/Pkgs.JLD”)[“data”]时,输出被切断。它打印
Dict{String,VersionNumber} with 139 entries:
"FFTW" => v"0.0.4"
"Gtk" => v"0.14.0"
... (more p
我正在阅读一段代码,对类型声明中新方法的使用感到困惑
通过搜索互联网,我了解了内部构造函数和外部构造函数的含义,我知道这是Julia中新方法的主要用途,如下链接:
我的困惑主要如下。新方法中提供的值的数量小于类型声明中的字段数量。有人能给我解释一下吗 您可以使用少于字段数的参数调用new,以获得未完全初始化的对象
正如Julia手册的章节所解释的,这是有意的
这对于可变结构非常有用(引用手册):
内部构造函数方法可以将不完整的对象传递给其他函数以委托其完成:
type GenConfig
如何在不将第三方软件包安装到我的计算机上的情况下获取其UUID
现在,在我的计算机上本地安装了第三方软件包之后,我只能打开project.toml文件查看?我想到的第一件事就是在Github上找到该软件包,然后查看它的project.toml
但是,如果您为默认包存储库设置了更新的Pkg系统,则还应该有一个类似~/.julia/registries/General的文件夹,在文件Registry.toml中包含按UUID排序的该repo的所有包的列表,和从A到Z的每个字母的子目录,以及所有包的文
我试图理解朱莉娅的范围规则。我尝试了将z作为常规整数变量的for循环:
z = 2
for i = 1:4
z += 1
end
println(z)
它给我一个UndefVarError:z未定义错误,除非我把global z放在循环内部
但是,如果我将z制作成1x1阵列,它在没有global的情况下工作得非常好:
z = [2]
for i = 1:4
z .+= 1
end
println(z)
数组和变量的作用域之间有什么区别?分配给全局变量的数组的内容在类型上是常量
如何从Julia中的元组数组创建静态有向图,而不必先创建简单的有向图。我拥有的一个边缘列表示例是[(1,2)、(2,3)、(3,4)]。StaticGraphs.jl的文档是有限的 有一种方法可以做到这一点,但它要求您将边及其反面排序为两个向量。假设您有一个有向路径图1->2->3->4:
fwd = [(1, 2), (2, 3), (3, 4)] # these are your forward edges, sorted
rev = [(2, 1), (3, 2), (4, 3)] #
标签: Julia
numerical-methodsipoptautodiff
我正在测试不同解算器在最小化从模拟矩量法导出的目标函数方面的性能。考虑到我的目标函数是不可微的,我想知道在这种情况下自动微分是否有效?我尽力读了一些关于这种方法的介绍,但我想不出来
实际上,我正试图在Julia中使用Ipopt+跳转来进行此测试。之前,我在Julia中使用BlackBoxoptim对其进行了测试。如果您能在Julia中提供一些关于不可微函数优化的见解,我将不胜感激
似乎我不清楚不可微性。让我给你举个例子。考虑下面的问题。X为数据集,B为未观测到的随机误差,将积分出,\θ为参数。然
通过阅读相关问题,我发现可以在julia中初始化任意数组
B = Array{Complex{Float64}}(undef, 0, 0)
我想初始化类似的东西,但我想把稀疏矩阵放在这样的数组中。最后一个构造在这种情况下不起作用
如何构建包含稀疏数组的任意数组
实际上,我的问题更具体一点。在B的每个条目中,我想放置一个不同的稀疏矩阵。稀疏矩阵的维数是固定的,我事先知道我想在B中放入多少稀疏矩阵
B = [spzeros(2,2) for i in 1:2, j in 1:3]
以下是您将获得
标签: Julia
list-comprehension
要制作带有列表压缩的2d数组,我写下以下内容:
array = [f(i) for in 1:length]
此时,函数f返回一维列表。
但在结果为嵌套数组时。。。。
如何创建具有列表理解功能的二维数组
二维标注的示例如下所示:
julia> A
2×3 Array{Float64,2}:
0.0194681 0.195811 0.150168
0.398199 0.544672 0.942663
这是:
julia> [x*y for x in 1:5, y in
标签: Julia
cluster-analysisdbscanplots.jl
如何摆脱独立球体?或者我如何操作数据集,不绘制球体,这些球体没有连接在一起?(表示球体的表面不接触其他球体)
在本例中,有些球体未连接到主桩。数据集包括x、y、z坐标和每个球体的体积
谢谢,,
汤姆
您需要的东西被称为,这不是绘制图形的问题,而是分析多维数据的一系列算法
解决此问题的方法有很多,但也许您可以从以下几点开始:
另一种方法是使用聚类方法(请参阅),如DBSCAN,然后解释小聚类和异常,供讨论,请参阅此处。谢谢!我明天就试试看。Cheers使用适当半径的SDB扫描应该完全按照Przem
我有一个产品销售的时间序列记录的数据框,我用它来绘制,但是有很多,我想要一个随机样本N
这是一个包含三项的简化数据示例,我想随机抽取其中两项:
df = DataFrame(time = [0, 1, 0, 1, 0, 1]
, amt = [19.00, 11.00, 35.50, 32.50, 5.99, 5.99]
, item = ["B001", "B001", "B020", "B020"
几个月前,我曾用朱莉娅做过一个项目,从那以后就再也没有用过。那时我没有遇到过问题。但是现在,我绝对不能安装任何软件包
(@v1.5) pkg> add Distributions
Resolving package versions...
我正在尝试使用代理包在Julia中执行径向基插值
我开发了以下代码:
using Surrogates
function t(train, test)
xy = zip(train[:,1],train[:,2]) |> collect
lb = vcat(minimum(train[:,1]), minimum(train([:,2]))
ub = vcat(maximum(train([:,1]),maximum(train[:,2]))
rbf =
标签: Julia
plots.jljulia-plots
我想(I)计算和(ii)绘制Distributions.jl库中分布的中心可信区间和最高后验密度区间。
理想情况下,可以编写自己的函数来计算CI和HPD,然后使用Plots.jl来绘制它们。然而,我发现实现相当棘手(免责声明:我对Julia是新手)。
关于图书馆/GIST/repo,有什么建议可以让计算和绘图变得更容易吗
上下文
using Plots, StatsPlots, LaTeXStrings
using Distributions
dist = Beta(10, 10)
plot(
今天我第一次打开了Julia REPL。我安装了32位的Julia和64位的Windows。默认的整数类型是Int32,默认的浮点类型是Float64
#these throw type assertion errors
(1 + 2)::Int64
(1.0 + 2.0)::Float32
#these work
(1 + 2)::Int32
(1.0 + 2.0)::Float64
为什么在我的系统上,整数的默认值是32位,浮点的默认值是64位?浮点寄存器的大小与您的体系结构字大小无关–
Julia新手,尝试运行此示例
但是我不能使用函数“randg”,因为它说它没有定义。我遗漏了什么吗?我拼凑了来自和的信息
randg()已被弃用。您需要对分发包中的Gamma对象使用rand()函数。它说应该内置到julia中。我得到了最新版本,没有goYup谢谢!这解决了itI升级评论以回答问题(并方便未来访问者使用信息)。
使用MD模拟,我需要在粒子位置上强制执行周期性边界条件。最简单的方法是使用mod(粒子位置,长方体尺寸)。因为我在3D空间工作,所以我制作了一个3D向量类型:
immutable Vec3
x::Float32
y::Float32
z::Float32
end
和mod函数:
f1(a::Vec3, b::Vec3) = Vec3(mod(a.x, b.x), mod(a.y, b.y), mod(a.z, b.z))
但是,当使用此功能时,它会出现可怕的失败:
julia> a =
是否有可能改变牛虻图中的标记类型?或者任何能清楚区分灰度打印输出中不同线条的东西
谢谢,
多米尼克目前没有办法改变牛虻的标记类型。有一个悬而未决的问题:你试过什么吗?研究什么?目前你的问题很广泛。
Julia语言每次都编译脚本,我们不能用Julia编译二进制文件吗?
我尝试了一个带有println函数的helloworld小脚本,julia花了2,3秒才显示输出!如果我们可以制作二进制文件,而不是每次编译,那就更好了
更新:自从我问了这个问题后,朱莉娅有了一些变化。虽然我不再关注julia的更新,但因为我已经问了这个问题,如果你正在寻找类似的东西,请查看下面跟踪julia的人的回答和评论
另外,很高兴知道,现在加载一个脚本大约需要150毫秒。此时Julia JIT在启动时编译其整个标准库。
以Cairo为例,当我运行Pkg.add(“Cairo”)时,控制台中没有显示任何内容
有没有办法让Pkg.add()在工作时显示更多信息
Pkg.add()执行哪些步骤?下载,编译
有可能加快速度吗?我一直等了15分钟,什么也没出来!也许是茱莉亚的问题,或者是系统的问题,人们怎么能分辨出来呢
编辑
Julia version: 0.3.9 (Installed using binary from julia-lang.org)
OS: Winsows 7 64bit.
CPU: Core D
好的,最近我一直在试验Julia的compose.jl,遇到了一个有点令人困惑的问题。我将运行标准代码来初始化包
Pkg.add("Compose")
using Compose
compose(compose(context(), rectangle()), fill("tomato"))
然后运行代码。这是我的问题:代码执行得很好,但奇怪的是输出。此代码的典型输出为红色矩形。运行此代码时得到的输出如下:
Context(BoundingBox(Measure{MeasureNil,Meas
运行Pkg.update()后,我遇到了以下关于IJulia安装的错误消息:
WARNING: Module BinDeps uuid did not match cache file
===============================[ ERROR: IJulia ]================================
LoadError: __precompile__(true) but require failed to create a precompiled
有没有一个等价物可以与numpy的apply_沿_轴或R的applyin Julia相媲美?我有一个3D数组,我想对尺寸为1和2的每对坐标应用一个自定义函数。结果应该是二维数组
显然,我可以在第一维度和第二维度上进行两次嵌套for循环迭代,然后再进行重塑,但我担心性能
这个例子产生了我想要的输出,我知道这对于sum来说有点毫无意义。这里只是个假人:
test = reshape(collect(1:250), 5, 10, 5)
a=[]
for(i in 1:5)
for(j in
在Gadfly.jl中将自定义颜色贴图添加到主题的最佳方式是什么?假设我创建了一个新的颜色贴图,如下所示:
n = 12
color_map = distinguishable_colors(n, Color[LCHab(50, 60, 290)],
transform=c -> deuteranopic(c, 1),
lchoices=Float64[65, 30, 50, 50],
我试图读取写入文本文件的张量元素。文件的第一行定义了张量标注。下一行给出了张量值。在Matlab语法中,我能够通过以下代码行实现这一点,但我很难在Julia中编写等效函数。非常感谢您的帮助
fid=fopen(fname);
shape = sscanf(fgetl(fid),'%i');
for j = 1:shape(3)
for i = 1:shape(1)
A(i,:,j) = str2num(fgets(fid));
end
en
标签: Julia
julia-jumpipopt
我必须生成所有的帕累托点,但我得到了这个错误
using JuMP
using Gurobi
using Gadfly
using Ipopt
m = Model(solver=IpoptSolver(print_level=0))
@variable(m, 0.1 <= x <= 1.0)
@variable(m, 0.0 <= y <= 1.0)
pareto_x = Float16[]
pareto_y = Float16[]
for i in 0.0:0.1
标签: Julia
quantitative-finance
我可以使用
tvmnpv(i,cfo,cfall)=begin
n=collect(1:length(cfall));
cfo + sum(cfall./(1+i).^n)
end
其中,cfo是t=0时的初始现金流,cfall表示以下现金流,i是使用的贴现率
不过,鉴于现金流量,我找不到计算内部收益率的方法。我相信excel使用了一个函数,可以滚动浏览可能的值,直到找到cfo加上贴现后的现金流等于零的值。谁能给我指出正确的方向吗
所需输出的示例如下:
cfo=[-100];cfall=[30
这个问题可能也适用于其他语言
如果我使用内置函数名作为变量名,
我可以通过执行以下操作来恢复该功能:
all = 123
all = Base.all
但如果我定义了一个自定义函数sum(),然后
sum = Base.sum
我说“常数和的重新定义无效”时出错
如果我重写了内置函数,有没有办法恢复它?或者这是设计上不可能的?如果在REPL中工作时这对您来说只是一个问题,并且您不介意丢失所有其他定义,您可以执行workspace()重置Main对于本例,您可以将sum重新定义为Base.su
在讨论julia时,我希望有一个类似于python的dis模块的功能。
通过网络浏览,我发现Julia社区已经研究了这个问题,并给出了这些()
我曾亲自使用Julia REPL尝试过这些,但我觉得很难理解
在Python中,我可以反汇编这样的函数
>>> import dis
>>> dis.dis(lambda x: 2*x)
1 0 LOAD_CONST 1 (2)
3 LOA
我感兴趣的是在p个worker之间分布一个MxN整数数组。有没有办法指定分发哪个维度?特别是,我希望保持行数M固定,并分布在N列上。在我的例子中,M>N(我有一个术语文档矩阵,词汇表大小为M,文档数量为N)
默认情况下,Julia似乎分布在大小最大的维度上,这不适用于我的应用程序(我希望分布在文档上,而不是词汇表上)。有没有办法控制哪个维度被分发?SharedArray构造函数有一个pids可选参数,用于将元素映射到进程(请参阅)
因此,可以使用以下代码初始化MxN矩阵:
# a helper
如何在Julia的C API中访问Julia函数的方法?。有结构jl_method\u instance\t和jl_method\u t,我认为它们是C级Julia方法的容器,但是如何构造其中一个呢?如何得到抽象函数的具体方法。我有一个部分答案。您可以通过调用“which”函数来获得特定的方法
julia> f = which(+, (Int, Int))
+{T<:Union{Int128,Int16,Int32,Int64,Int8,UInt128,UInt16,UInt32,U
我有一段Python代码,a希望将其转换为Julia。我在使用包时使用了python代码。Julia中的等价物是什么?我查看了Julia文档中的“任务和并行计算”部分,但找不到类似的内容。Python中的代码是:
def main():
schedule.every(0.25).seconds.do(read_modbus, 1, 1000, 100, 1)
while True:
schedule.run_pending()
time.sleep
\uuu del\uu类似于垃圾收集对象时调用的析构函数。
例如,当数据库连接超出范围时,可以使用\uu del\uu方法将其自身从池中释放出来
Julia是否有类似的关键字/conecpt.或多或少:注册一个函数f,当对象x被垃圾收集时调用。如果希望始终为特定类型的所有对象注册相同的函数,可以在内部构造函数中注册
我试图创建一个可变结构神经元,其参数输入为神经元向量类型。这在朱莉娅身上可能吗。
下面是我正在做的
mutable struct Neuron
inputs::Vector{Neuron}
weights::Vector{Float64}
func::Function
output::Float64
#= parameters::Vector{Float64} =#
end
我正在使用julia 1.0。错误:
错误:LoadError:Julia中可能存在对常量神经元的无效重新定义,如Jul
基本上,我已经完全定义了一个MIP,一切都正常,直到我尝试通过GLPK解决问题时,它给了我以下错误:UndefVarError:floatmax未定义
我试着把floatmax定义为任何东西,但没有用。我完全卡住了。下面是我的代码和问题的图像:
问题在于您使用的是Julia 0.6,而floatmax由GLPKMathProgInterface.jl包在内部使用
可能的解决办法是:
建议切换到Julia 1.0
在将GLPKMathProgInterface.jl移植到Julia 1.0之前,请
标签: Julia
typedefequivalent
我很难找到一个好的方法来表达Julia中的以下概念
我有一些结构,它们都是某种集合。假设我有一本通讯录和一本相册。每个集合都有非常不同的元素。现在,在C++中,如果知道相册被传递到函数中,就很容易创建一个类型的变量。
在朱莉娅身上,我想不出一种与之相当的方式。理想情况下,编译器应该确切地知道集合由哪种类型组成,以便尽可能地优化
这就是我在C语言中所做的++
类地址簿
{
公众:
类型定义细节元素;
}
班级相册
{
公众:
typedef光电元件;
}
模板
无效printFirstElemen
我不明白为什么下面的代码片段在Julia中返回一个NoMethodError
using Calculus
nx = 101
nt = 101
dx = 2*pi / (nx - 1)
nu = 0.07
dt = dx*nu
function init(x, nu, t)
phi = exp( -x^2 / 4.0*nu ) + exp( -(x - 2.0*pi)^2 / 4.0*nu )
dphi_dx = derivative(phi)
u = ( 2.
当我输入这个错误时,julia会跳出来,但我不知道为什么,它应该是有效的/
julia> A = [1 2 3 4; 5 6 7 8; 1 2 3 4; 5 6 7 8]
4×4 Array{Int64,2}:
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
julia> B = A[2:1:end; 2:1:end]
ERROR: syntax: missing last argument in "2:1:" range expre
我知道将一列字符串值转换为浮点值的方法:
df = DataFrame(:a => ["2,2", "3,3"])
df.a = parse.(Float64, replace.(df.a, (','=>'.',)))
但是如何转换缺少值的列呢
df = DataFrame(:a => ["2,2", missing]
我尝试了passmissing,但似乎没有优化时间和内存:
julia> @time p
我对Julia很陌生,我正在尝试转换数组中的元组向量。
这里有一个例子
using Statistics
a = randn((10, 100))
q = (0.05, 0.95)
conf_intervals = [quantile(a[i,:], q) for i in 1:10]
而conf_interval是一个10元素向量{Tuple{Float64,Float64}
预期结果应为10×2矩阵{Float64}
我试着用[conf\u interval…]来设置conf\u inte
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 85 页