Julia 如何执行嵌套迭代?

Julia 如何执行嵌套迭代?,julia,Julia,我定义了一个函数m(r,T,a,w)并且我有变量r,T,w的向量。 我想做的是取这些向量中的第一个元素,在1:T中迭代函数,然后取和,对这些向量的第二个元素重复这个迭代,依此类推。 最后我想得到一个由所有和组成的向量。 谢谢你的帮助 到目前为止,我尝试的是: (W、R、LE分别是W、R、T变量的向量) 显然Julia不知道我想做什么语法: for w in W, r in R, T in LE ... 不同时在向量上迭代。相反,它相当于产品: for w in W for r

我定义了一个函数
m(r,T,a,w)
并且我有变量
r,T,w的向量。
我想做的是取这些向量中的第一个元素,在1:T中迭代函数
,然后取和,对这些向量的第二个元素重复这个迭代,依此类推。
最后我想得到一个由所有和组成的向量。
谢谢你的帮助

到目前为止,我尝试的是:

W
R
LE
分别是
W
R
T
变量的向量)


显然Julia不知道我想做什么语法:

for w in W, r in R, T in LE
    ...
不同时在向量上迭代。相反,它相当于产品:

for w in W
    for r in R
        for T in LE
            ...
听起来你想同时迭代这三个向量。在这种情况下,您可以使用
zip

for (w,r,T) in zip(W,R,LE)
    ...
语法:

for w in W, r in R, T in LE
    ...
不同时在向量上迭代。相反,它相当于产品:

for w in W
    for r in R
        for T in LE
            ...
听起来你想同时迭代这三个向量。在这种情况下,您可以使用
zip

for (w,r,T) in zip(W,R,LE)
    ...

Matt的答案是正确的,但您可能需要改进一些其他方面,例如类型,并将其放在函数中,使其不使用全局变量。你知道总数是多少吗?一个
Float64
有效,还是一个
Int64
? 例如:

function myfun(W, R, LE)
    M = Vector{Float64}()
    for (w, r, T) in zip(W, R, LE), a in T
        push!(M, sum(m(r, T, a, w)))
    end
    M
end

Matt的答案是正确的,但您可能需要改进一些其他方面,例如类型,并将其放在函数中,使其不使用全局变量。你知道总数是多少吗?一个
Float64
有效,还是一个
Int64
? 例如:

function myfun(W, R, LE)
    M = Vector{Float64}()
    for (w, r, T) in zip(W, R, LE), a in T
        push!(M, sum(m(r, T, a, w)))
    end
    M
end

谢谢你的宝贵意见。我成功地编写了我想要的代码

  MM = Vector{Float64}()
    M = Vector{Float64}()
    for (w, r, T) in zip(W, R, LE)
        for a in 1:T
          push!(MM, m(r,T,a,w))
        end
          push!(M,sum(MM))
    end

谢谢你的宝贵意见。我成功地编写了我想要的代码

  MM = Vector{Float64}()
    M = Vector{Float64}()
    for (w, r, T) in zip(W, R, LE)
        for a in 1:T
          push!(MM, m(r,T,a,w))
        end
          push!(M,sum(MM))
    end

请展示您为执行此任务而编写的代码,并描述您在该代码中的具体问题。谢谢,我编辑了我的帖子“显然Julia不会意识到我试图做什么”您到底面临着什么样的问题?代码崩溃了吗?我还是完全不知道你在问什么。抱歉,我对编程基本上是新手,我的向量
R,W,LE
52×1数据数组。数据数组{Any,2}
,但是向量
m
,我计算的是6086704个元素。我只是不知道如何告诉Julia保持向量的第一个元素
R,W,LE
固定,然后计算a在1:T中的迭代次数之和,然后继续向量的第二个元素,计算a在1:T中的迭代次数之和,请显示您为执行此任务而编写的代码,并描述您在该代码中的确切问题。谢谢,我编辑了我的帖子“显然Julia不知道我想做什么”你到底面临什么样的问题?代码崩溃了吗,等等?我仍然完全不知道你在问什么。对不起,我对编程一般来说是相当陌生的,我的向量
R,W,LE
52×1数据数组。数据数组{Any,2}
,然而向量
M
,我计算的是6086704个元素。我只是不知道如何告诉Julia保持向量
R,W,LE
的第一个元素不变,然后计算1:T中a的迭代
和,然后继续计算向量的第二个元素并计算迭代
f的和或1:T中的a
。。。