我是julia的新手,正在尝试创建一个函数,该函数可为一组接收器计算事件之间的双重差,并将所有这些双重差放入向量中,但是我的函数输出是
(::var"#d#8 {Array{Float64,2},Array{Float64,2},Int64,Int64}) (generic function with 1 method)
代码如下:
function doubledifference(obsEvents, calcEvents)
I = size(obsEvents, 2) #event 1
J = size(obsEvents, 2) #event 2
K = size(obsEvents, 1) #receiver
M = ((K*I)*(K - 1))/2
M = Int(M)
d = zeros(M, 1)
n = 1 #d position counter
for i = 1:I #i.e. no. columns in matrix
for j = 1:J
for k = 1:K
if j <= i
j = j + 1
else d(n) = (obsEvents(k, i) - obsEvents(k, j)) - (calcEvents(k, i) - calcEvents(k, j))
n = n + 1
end
end
end
end
return d
end
答案 0 :(得分:1)
很好,因为它 是函数的打印输出。
d(n) = (obsEvents(k, i) - obsEvents(k, j)) - (calcEvents(k, i) - calcEvents(k, j))
声明具有匿名类型var"#d#8
和参数n
的局部函数(也称为闭包),该函数内部调用其他函数(!)obsEvents
和calcEvents
。函数名称d
遮盖了数组d
。该函数将返回。
Julia is not Matlab。数组索引使用方括号:
d[n] = (obsEvents[k, i] - obsEvents[k, j]) - (calcEvents[k, i] - calcEvents[k, j])