朱莉娅函数的问题-输出不显示双重差异

时间:2020-09-18 15:10:27

标签: 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) #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

1 个答案:

答案 0 :(得分:1)

很好,因为它 是函数的打印输出。

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

声明具有匿名类型var"#d#8和参数n的局部函数(也称为闭包),该函数内部调用其他函数(!)obsEventscalcEvents。函数名称d遮盖了数组d。该函数将返回。

Julia is not Matlab。数组索引使用方括号:

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