微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我是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的局部函数(也称为闭包),该函数内部调用其他函数(!)obsEventscalcEvents。函数名称d遮盖了数组d。该函数将返回。

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。