我在Julia中有一个数组,我试图找到一种方法将所有元素连接在一起。如果我创建数组并将它们分别送入hcat(),它的性能将完全符合我的要求。但是,如果我创建数组,然后将数组数组馈送到hcat(),它就会失败。我可以编写一个循环来成功地将一个数组连接到另一个数组,但我想知道是否有更好的方法
a = ones(2,2);
b = ones(2,2);
c = ones(2,2);
hcat(a,b,c) ## Does what I want by creating a single ar
什么样的函数可以输出一个数据帧,从而将其转换为文本,而不是下面所示的文本
using DataFrames
A = DataFrame(randn(10, 7));
print("\n\n\n", "A = DataFrame(randn(10, 7))")
print("\n\n\n","print(A)\n")
print(A)
print("\n\n\n","show(A)\n")
show(A)
print("\n\n\n","show(A, true)\n")
show(A,
我在试验矢量加法和分量指数运算的速度时,遇到了一个奇怪的结果
非矢量化的版本
julia> @time exp(randn(1000) + randn(1000))
几次运行后大约需要0.001秒。从0.6开始,它还提供了一个弃用警告
如果我将指数函数向量化
julia> @time exp.(randn(1000) + randn(1000))
我得到了4倍的加速,大约0.00025秒
但是,如果我对指数函数和向量的加法进行向量化
julia> @time exp.(ra
如何从系统中完全擦除(删除)Julia?除非您对包中的代码进行了更改,否则遇到问题时可以删除整个.Julia目录。通过文件管理器或(在Unix系统上)通过命令行
rm -rf ~/.julia
蒂姆的回答很好,不过你也可以说得更具体一点。
我通常会执行以下操作(因为我使用的是v0.5,所以路径有v0.5,但这取决于您使用的版本):
rm-rf~/.julia/lib/v0.5~/.julia/v0.5/
删除lib子目录可以删除任何预编译代码,这些代码可能也处于错误状态。你说的“代码~/.j
这是一个后续问题。根据那篇文章的建议,我创建了一个自定义数据类型,并重载了base.show()函数。但是输出不是我所期望的。所以我想知道我是否误解了什么
type Output
testname::String
output::Float64
end
function show(io::IO,object::Output)
println(io,"\tOutput Statistic for $(object.testname)")
println(io,"
如何在julia中生成规则的非整数序列
我正在尝试获取0.10.20.30.40.50.60.70.80.91.0
在MATLAB中,我将使用
0.1:0.1:1
在R
seq(0.1, 1, by = 0.1)
但是我在julia中除了整数序列之外什么都找不到(例如,1:10)。在文档中搜索“序列”只会提供有关字符串是如何序列的信息。类似于Matlab,但不同之处在于0.1:0.1:1定义了一个范围:
julia> typeof(0.1:0.1:1)
Range{Float64} (
Julia本身不支持多重返回。然而,Julia通过返回一个值元组来执行类似的功能,然后可以将值元组分配给一个变量元组。例如:
function mult_return()
(3,2)
end
返回元组(3,2)。然后,我们可以将这两个返回值分配给不同的变量,如下所示:
(a,b)=mult\u return()(或者a,b=mult\u return(),因为括号不是必需的。)
我的问题是:有没有办法忽略其中一个返回值?例如,在Matlab语法中,用户可以编写:
[~, b] = mu
我想添加以下约束:
@addConstraint(m, sum{sum{x[:alpha, d, s], s in S}, d in D} >= 5)
其中,x是一个决策变量,并且
D = [1:50]
但是我只希望计算小于10的d的总和。
是否有一种内置方法,或者我必须找到一些解决方法?我不熟悉您的应用程序,但一些简单的算术可以为您提供总和,假设元素是唯一的连续整数,您在问题中没有阐明这一点。这大概是高斯发现的:
n个连续整数(从1开始)的和由以下公式给出:(n(n+1))/2
很可
在,有一个关于向浮点数添加整数的讨论,等等,最后它说
用户定义的类型可以通过定义与其他类型之间的转换方法,并提供一些升级规则来定义它们与其他类型混合时应升级到的类型,从而轻松地参与此升级系统
由此我推断,在定义自己的数值类型时,我只需要定义如何将其转换为已知类型,以便它使用其上的函数。但我试过了,但似乎不起作用:
julia> type MyType
n::Int
end
julia> convert(::Type{Int}, x::MyType
Julia是否有类似Python的VirtualEnvironment simulator,可以在本地虚拟环境中进行开发?目前(Julia 1.2)可以通过其内置的Pkg标准库模块管理虚拟环境:
有
一个用于管理julia沙盒的包,如python的virtualenv(受pyenv和VirtualEnvRapper的影响)
在另一个目录中单独安装Julia有什么不对?然后,您只需要为要运行的JULIA安装程序适当地设置JULIA_PKGDIR环境变量。现在JULIA的包管理器中内置了这种东
可以使用(Fedora中的ibus表mathwriter包)在gedit中获得king for。
我正在尝试返回向量集合中选定元素的索引
type Node
name::AbstractString
value::Int
left::Nullable{Node}
right::Nullable{Node}
Node(name::AbstractString, value::Int) = new(name, value, Nullable{Node}(), Nullable{Node}())
end
function m
当我将Julia 0.5与Jupyter一起使用时,有时会出现警告
WARNING: Base.writemime is deprecated.
当我将Julia 0.5与REPL一起使用时,我没有此警告
我该怎么办
当我构建Ijulia时,我得到了警告,我想知道这些是否相关
Pkg.build("IJulia”)
WARNING: `@windows_only` is deprecated, use `@static if is_windows()` instead
in depwarn
运行以下代码后,我将使用julia 0.5:
Freqsample = 100;
second = 4;
step = (Freqsample * second )-1
我得到这个错误:
MethodError: no method matching getindex(::Int64, ::Colon, ::UnitRange{Int64})
in -(::Int64, ::Int64) at main.jl:12
in include_string(::String, ::String)
我只是想了解一下Julia,突然发现类型成员应该是某个特定的类型,或者也可以是nothing。因此,我尝试了以下方法:
using NIfTI # Julia package for reading NIfTI medical images
type RR
source::Union(NIfTI.NIVolume, nothing)
end
但是,当我尝试初始化此对象时,我得到:
错误:LoadError:LoadError:MethodError:没有方法匹配
并集(::类型{N
标签: Julia
differential-equationspolynomial-math
我在研究生物系统的进化模拟。我必须解多项式方程,找到根(u*X^3-N*p*r*X^2-N*p*X^2+K^2*u*X-N*K^2*p),其中u和K是常数,N是常数数组,p,r是演化参数。基本上,对于每一代人口中的每个个体,我需要进行以下计算(长度(N)>>长度(p)):
我知道我可以通过使用不同的核来求解不同个体的方程来并行代码,甚至在每个个体内,我可以并行求解每个X[j,I]。我想知道处理这种情况的最佳实践/快速方法是什么?有可能以更快的方式解一个方程吗 这个答案比较了根、GSL和多项式根解
使用一个can的乘积可以迭代输入的笛卡尔乘积中的所有组合。然而,它的速度比暴力强迫要慢得多:
using Iterators
@time(
for tup in product(-100:100, -100:100, -100:100)
# do something with silly tup
maximum(tup)
end
)
# 10.033157 seconds (64.97 M allocations: 3.510 GB, 3.03% gc time)
直接嵌套循
标签: Julia
metaprogramming
我想形成这样的表达
julia> ex = :(a[$i,$j] + b[$i,$j])
因为我对编写一个程序感兴趣,它能够编写一个方程组,其中用户只给出它们的结构,然后julia显式地编写所涉及的代码块。更一般地说,我想在表达式中嵌入函数,比如
julia> ex = :(a[$myfunc(i,j),$j] + b[$i,$j])
在计算第一行代码时,我得到
ERROR: UndefVarError: i not defined
in eval(::Module, ::An
我在Julia有一个程序,可以计算很多值,包括最终积分的结果。程序中计算的所有值取决于sigma,首先,在sigma=0.6中进行修正。现在我必须做一个值表,将sigma更改为sigma=0.319/R,[0.5:0.5:10](20分)
因此,对于每个R,我将在程序中得到最终结果。该程序的输出是一个积分结果,称为omega
那么,在程序没有大的变化的情况下,我怎么能做到这一点呢?
sigma在程序开始时声明
我试图把R=[0.5:0.5:10]和sigma=0.319./R,但在接下来的几行中
ipython提供了一个围绕python REPL的shell,其中包含行号、历史记录和魔法。julia REPL有很多很好的特性,比如帮助和shell,但是我仍然错过了一些特性,比如magics、history和行号。我能在朱莉娅那里买到这些吗
不寻找笔记本电脑,例如Jupyter是Julia REPL增强库。是Julia REPL增强库。不错,OhMyREPL.input\u提示!(字符串(版本)*“>”,:绿色)有效。希望能够包括并增加行号。有没有办法在提示符中包含函数?我会为任何功能请求
Julia中是否有与Python中的*args等效的命令?我问这个问题是因为我正试图写一个数值积分函数,它的参数是一个可能依赖于几个常数的函数。例如,如果我的Julia函数是
function func(x,a,b)
return a*x + b
end
有没有办法制作一个数组
args=[a,b]
并将此函数称为
val=func(x,*args)?这在Julia中非常容易。将…放在函数定义中最后一个参数之后,使其接受作为元组传递的任意数量的参数:
function func(x,args.
我想在Julia中的一组大浮点上执行FFT,但到目前为止我无法实现。我在他们的文档中找到并遵循了说明(importall FFTW等)。遗憾的是,这并没有起到任何作用,当运行类似于fft([BigFloat(1.0)])的命令时,我仍然会遇到错误:键入BigFloat不受支持
有没有人经历过(并希望克服)类似的问题?FFTW.jl是C库的包装,它无法处理大浮点。你需要找到一个纯Julia代码,比如
我想创建一个稀疏数组,在其中定义一个规则来组合重复项。文件上说我可以用sparsei,j,v,[m,n,combine]来做这件事。我在下面的例子中尝试过,但没有成功。你能给个建议吗
i = [1,2,3,3];
j = [1,2,3,2];
v = [10.,11.,12.,13.];
full(sparse([i;j],[j;i],[v;v], [3,3,combine(a,b)=mean([a,b])]))
full(sparse([i;j],[j;i],[v;v], [3,3,mean]
来自Documenter.jl的以下文件:
[…],一个页面向量可能包含在@autodocs中进行过滤
基于定义文档字符串的源文件的文档字符串:
```@autodocs
Modules = [Foo]
Pages = ["a.jl", "b.jl"]
```
然而,它也说
请注意,页面匹配是使用提供的字符串结尾完成的
因此,a.jl将与以a.jl结尾的任何源文件相匹配,即。
src/a.jl或src/foo/a.jl
如何将@autodocs块限制为特定的源文件
我的包的源代码组织为
s
我在编译v0.7后尝试构建跳转,但出现错误:
ERROR: LoadError: Failed to precompile ReverseDiffSparse to /Users/MYUSER/.julia/lib/v0.7/ReverseDiffSparse.ji.
Stacktrace:
[1] error at ./error.jl:33 [inlined]
[2] compilecache(::Base.PkgId) at ./loading.jl:1208
[3] _requir
标签: Julia
linear-regression
我正在逐行构建一个数据帧,然后在其上运行回归。为简单起见,代码为:
using DataFrames
using GLM
df = DataFrame(response = Number[])
for i in 1:10
df = vcat(df, DataFrame(response = rand()))
end
fit(LinearModel, @formula(response ~ 1), df)
我得到一个错误:
ERROR: LoadError: MethodError:
假设我有一个分段函数foo(x),如果x为0,它等于x。此函数接受向量作为参数。因此,我尝试了以下方法:
function foo(x)
(x .<= 0) .* x + (x .> 0) .* log(x)
end
函数foo(x)
(x.0)。*日志(x)
结束
显然,当x
我正在尝试使用三个不同的包进行Julia编程(用atomide进行编程)
我对茱莉亚很陌生,请原谅我的无知!以下是我得到的:
Pkg.add("JuMP")
Pkg.add("DataFrames")
Pkg.add("GLPKMathProgInterface")
这些程序运行成功
那么我有:
using DataFrames
using GLPKMathProgInterface
using JuMP
“using DataFrames”行成功执行,但之后出现预编译/安装错误:
ERRO
标签: Julia
differential-equations
我试图解两体微分方程。Differentialsequations.jl过去可以毫不费力地解出我的方程,但在某个时刻,它开始不向微分方程提交任何初始条件
这可能是最近经常出现的范围界定问题吗
using Unitful, RecursiveArrayTools, DifferentialEquations
function propagateTrajNewWay(df::DataFrame, idx::Int)
x = df.E[idx]u"m"
y =
Julia 1.0.0提供了一般提示
它还建议不要使用@time宏,而是:
对于更严重的基准测试,考虑BythMaultKoS.JL包,除此之外,还可以多次对函数进行评价以减少噪声。
它们在使用中如何比较?是否值得费心使用不在“base”Julia中的东西?从统计角度来看,@benchmark比@time好得多
TL;DR The BenchmarkTools@benchmark宏是一个很棒的微观基准测试工具。
小心使用@time宏,不要认真对待第一次运行
这个简单的例子说明了使用和区别:
ju
给定当前目录中的文本文件“hello.jl”:
" Example hello world program."
function hello()
println("hello, world")
end
您将如何向Julia 1.0.0 REPL显示此内容
这就是我到目前为止所做的:
julia> disp(f) = for line in readlines(open(f)); println(line); end
disp (generic function with 1 me
标签: Julia
computational-geometryconcave-hullpycall
我想用Julia计算一组点的alpha形状(甚至只是凹面外壳)。在其他问题中,他们通过使用Delaunay tesselation在python中解决了这个问题
Julia中的这个包可以获得Delaunay tesselation(尽管我不确定它是否为Julia v0.7更新)。
我想知道julia v0.7是否已经有了一个实现,可以得到eh alpha形状,甚至只是一组点的凹面外壳
或者,有没有一种方法可以有效地调用python(scipy.spatial.Delaunay)来完成这项工作?V
标签: Julia
numerical-integration
我有两个一维数组,其中我想计算1个数组相对于第2个数组指定的标量间距的近似累积积分。MATLAB有一个名为cumtrapz的函数来处理此场景。有没有类似的东西,我可以尝试在朱莉娅内部完成同样的事情
预期结果是另一个1-D数组,每个元素的积分都会计算出来。Julia有一个数值积分包(参见),它定义了cumul_积分(X,Y),默认情况下使用梯形规则
但是,如果这个包不存在,您可以轻松地自己编写函数,并拥有一个非常高效的开箱即用的实现,因为循环不会带来性能损失
编辑:添加了一个@assert来检查匹
标签: Julia
interpolationcontourextrapolation
我在Julia中创建了一个64x64随机2D数组,然后使用插值对其进行插值。jl:
using Interpolations
using Plots
gr()
x = range(-10., length=64, stop=10.)
y = range(-10., length=64, stop=10.)
v_unscaled = interpolate(potential, BSpline(Cubic(Line(OnCell()))))
v_scaled = Interpolations.s
我从一个网站上抓取了一些数据,当我试图将这些数据传递给array时,我收到了以下消息:
LoadError: MethodError: Cannot `convert` an object of type HTMLText to an object of type Int64
你能提供你的代码吗?或者更好,一个产生错误的抽象的最小版本?疯狂猜测,我会说您可能需要一个parse(Int64,obj),其中obj是HTMLText对象,在某处。LoadError:MethodError:no方法匹
网友们好,
我正在使用Julia Pro v.1.0.5-2 IDE为一些凝聚态物理数据渲染动画。当我尝试运行时:
array = load("C:/Users/Kyle/Desktop/julia/data/Psi_L=89_W=0_0.01_500000-500/Psi_L=89_W=0_g=0.0_L^2.jld", "data")
@gif for i=1:7
array_2 = abs2.(array[i][:,:,1])
x=1:89
y=1:89
f
这是我试图在Julia中执行的代码:
i = begin
i = 5
while(i<=10)
println(i)
i+=1
end
end
i=begin
i=5
while(i你在REPL中吗?你可能遇到的是begin没有引入它自己的作用域,因此i=5将i声明为一个全局变量。因为while引入它自己的作用域,如果你引入println(i),它只在其未定义的局部范围内查找i,因为i仅作为全局变量存在。您可以在while循环体的开头添加一行global i,告诉其后
我做了一个函数,可以找到一组微分方程的雅可比矩阵
global alpha = 1
global gamma = 0.001
global s = -0.5
global delta = 0.1
global k_1 = 0.01
global k_2 = 0.02
global k_3 = 0.008 # medium secretion
global k_4 = 10^-2
global N_0 = 10^6
global m = k_4 * N_0
function calc_jaco
我有上千个文件名为LOGS\u A1,LOGS\u A2,LOGS\u A3,…,LOGS\u A16281`,我想按顺序列出这些文件
cwd = pwd()
ParentDir = joinpath(cwd,"LOGS_A")
dirs = readdir(ParentDir, join=true, sort=true)
但是,它按字母顺序排列条目:
LOGS_A999
LOGS_A9990
LOGS_A9991
LOGS_A9992
LOGS_A9993
LOGS_A9
在跳转优化问题中指定只能为0或1的变量的语法是什么
我正在使用以下代码:
@variable(mod, X == 1 || 0)
但它不起作用。写:
@variable(mod, x, Bin)
您可能还希望签出以获取更多示例
标签: Julia
data-scienceplots.jl
我正在处理一个CSV文件,我想使用showcols检查该文件中每列中是否缺少值,但Julia Repl抛出了一个错误。我是否应该为此使用任何软件包?很早以前,showcols似乎是DataFrames中的一个函数。我可以在DataFrames v0.11的文档中找到对它的提及-当前版本是v0.22
假设数据确实位于数据帧中,可以使用descripe获取摘要统计信息,包括缺少值的数量
julia> using DataFrames
julia> df = DataFrame(rand
标签: Julia
dataframesmeta.jl
鉴于此:
dict = Dict(("y" => ":x / 2"))
df = DataFrame(x = [1, 2, 3, 4])
df
4×1 DataFrame
│ Row │ x │
│ │ Int64 │
├─────┼───────┤
│ 1 │ 1 │
│ 2 │ 2 │
│ 3 │ 3 │
│ 4 │ 4 │
我想说:
4×2 DataFrame
│ Row │
我是个新手,我在网上找不到任何帮助,如果以前有人回答过,我很抱歉。我试着在常微分方程上遵循这个简单的例子
using DifferentialEquations
f(t,u) = 1.01*u
u0=1/2
tspan = (0.0,1.0)
prob = ODEProblem(f,u0,tspan)
sol = solve(prob,Tsit5(),reltol=1e-8,abstol=1e-8)
using Plots
plot(sol,linewidth=5,title="Sol
如何确保在每次迭代中添加0.2,得到正确的结果
some = 0.0
for i in 1:10
some += 0.2
println(some)
end
上面的代码给了我
0.2
0.4
0.6000000000000001
0.8
1.0
1.2
1.4
1.5999999999999999
1.7999999999999998
1.9999999999999998
浮点数仅大致正确,如果加起来等于无穷大,误差将变为无穷大,但仍然可以非常精确地进行计算。如果需要评估结果
假设我们有
A = [1 2; 3 4]
在numpy中,将生成以下语法
A[[1,2],[1,2]] = [1,4]
但是,在julia中,下面产生了一个输出
A[[1,2],[1,2]] = [1 2; 3 4]
有没有一种简洁的方法可以在不使用for循环的情况下实现与numpy相同的功能?要获得您想要的功能,我将使用CartesianIndex如下所示:
julia> A[CartesianIndex.([(1,1), (2,2)])]
2-element Vector{Int
标签: Julia
parquetapache-arrow
我正在尝试将一个微不足道的数据集读写到Julia中。数据集是取自R的mtcars,带有随机布尔值的任意添加列bt。使用R箭头包写出文件/文件夹结构(如下)
这些文件的布局如下:
arr
|-- bt=false
| `-- part-1.arrow
`-- bt=true
`-- part-0.arrow
如何在Julia中忠实地复制原始表格
到目前为止,我所尝试的:
使用Parquet.jl包。文档建议它应该自动检测bool/string/date类型列的分区文件夹结构。当我使用
我认为在Julia中(与R或Matlab不同),开发的代码通常比矢量化的代码快。但我认为情况并非如此。下面是一个例子:
julia> x = Float64[1:10000000];
julia> y = Array(Float64, length(x));
julia> @time for i = 1:length(x) y[i] = exp(x[i]) end;
elapsed time: 7.014107314 seconds (959983704 bytes all
构造UTF32字符串(b,c),其中b包含大值:
using LegacyStrings
a=Char(69058047)
b=UTF32String(a)
c=UTF32String("")
现在将b和c连接成d:
d=b*c
分别读b、c、d。b保留了它的值,但d被强制转换到2^16以下,键入UTF8String,其值丢失了吗
julia> typeof(d)
UTF8String
julia> typeof(b)
UTF32String
julia> typeof
我试图通过在字符串中插入变量的值,在Julia中生成一个动态字符串。一切正常,直到今天,该值返回nothing,给我留下了一个错误
如何在字符串中包含nothing?如果n==无,至少不必经历一些的麻烦;n=“None”对于我要插入到字符串中的每个变量
function charge_summary(charges_df)
if size(charges_df)[1] > 0
n_charges = size(charges_df)[1]
total
这个问题是JuliaLang Zulip帮助热线中出现的问题的改编版本
假设我有一个函数,它接受一个异构类型的元组,并将返回该元组的一个切片,其中切片索引可以仅从类型信息静态推断。如何以正确推断输出类型的方式编写函数
例如,假设我的函数是
function f(t::Tuple, A::Array{T, N}) where {T, N}
if T <: AbstractFloat
imin = 1
elseif T <: Integer
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 85 页