具体来说:我正在尝试使用Julia的DataFrames包,特别是带有names选项的readtable()函数,但这需要一个符号向量.
到目前为止,我发现只有少数几个对朱莉娅语中的单词符号的引用.看起来符号用":var"表示,但我不清楚它们是什么.
旁白:我可以跑
df = readtable( "table.txt", names = [symbol("var1"), symbol("var2")] )
Run Code Online (Sandbox Code Playgroud)
我的两个项目符号仍然存在.
在Julia中,打印格式化字符串的语法如下:
@printf("Hello %d\n", 5)
Run Code Online (Sandbox Code Playgroud)
为什么是@printf
宏而不是函数?它是否可以接受不同数量的参数?
我已经在Julia工作了几个月了,我有兴趣并行写一些代码.我正在研究一个问题,我使用1个模型为几个不同的接收器生成数据(每个接收器的数据是一个向量).每个接收器的数据可以独立计算,这使我相信我应该能够使用pmap函数.我的计划是将数据初始化为2D SharedArray(每列代表1个接收器的数据),然后在每个列上进行pmap循环.但是我发现将SharedArray与pmap一起使用并不比使用map的串行工作快.我写了下面的虚拟代码来说明这一点.
@everywhere function Dummy(icol,model,data,A,B)
nx = 250
nz = 250
nh = 50
for ih = 1:nh
for ix = 1:nx
for iz = 1:nz
data[iz,icol] += A[iz,ix,ih]*B[iz,ix,ih]*model[iz,ix,ih]
end
end
end
end
function main()
nx = 250
nz = 250
nh = 50
nt = 500
ncol = 100
model1 = rand(nz,nx,nh)
model2 = copy(model1)
model3 = convert(SharedArray,model1)
data1 = zeros(Float64,nt,ncol)
data2 = SharedArray(Float64,nt,ncol)
data3 = SharedArray(Float64,nt,ncol)
A1 = rand(nz,nx,nh)
A2 = copy(A1)
A3 = convert(SharedArray,A1)
B1 = rand(nz,nx,nh) …
Run Code Online (Sandbox Code Playgroud) 在朱莉娅,有没有办法获得传递给函数的名称?
x = 10
function myfunc(a)
# do something here
end
assert(myfunc(x) == "x")
Run Code Online (Sandbox Code Playgroud)
我是否需要使用宏或是否有提供内省的本机方法?