如何解决朱莉娅函数的问题-输出不显示双重差异
我是julia的新手,正在尝试创建一个函数,该函数可为一组接收器计算事件之间的双重差,并将所有这些双重差放入向量中,但是我的函数输出是
(::var"#d#8 {Array{Float64,2},Array{Float64,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
解决方法
很好,因为它 是函数的打印输出。
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])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。