Function Julia函数问题-输出不显示双差
我是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)
(::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)