Function Julia函数问题-输出不显示双差

Function Julia函数问题-输出不显示双差,function,for-loop,julia,Function,For Loop,Julia,我是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)

我是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
函数双差(obsEvents、calceEvents)
I=大小(事件2)#事件1
J=大小(事件2)#事件2
K=尺寸(OBS事件,1)#接收器
M=((K*I)*(K-1))/2
M=Int(M)
d=零(M,1)
n=1#d位置计数器
对于i=1:i#即矩阵中的列数
对于j=1:j
对于k=1:k

如果j这很好,因为它是函数的打印输出

d(n) = (obsEvents(k, i) - obsEvents(k, j)) - (calcEvents(k, i) - calcEvents(k, j))
声明一个局部函数,也称为闭包,其匿名类型为
var“#d#8
,参数为
n
,它在内部调用其他函数(!)
obsEvents
calcEvents
。函数名
d
对数组进行阴影处理
d
。返回该函数

.数组索引使用方括号:

d[n] = (obsEvents[k, i] - obsEvents[k, j]) - (calcEvents[k, i] - calcEvents[k, j])

谢谢!我就知道这里面会有一个愚蠢的错误。别担心。如果答案适合你,你可以点击向上投票按钮旁边的复选标记接受它。
M=((K*I)*(K-1))/2
是浮点除法,这就是为什么之后必须转换为
Int
的原因。最好直接使用整数除法,使用
div
函数。此外,向量与nx1矩阵不同,因此我建议使用
d=zeros(M)
而不是
zeros(M,1)