我定义了一个函数m(r,T,a,w)
,我有变量r,T,w.
的向量
我想要做的是获取每个向量的第一个元素并迭代我的函数for a in 1:T
,然后取总和并对这些向量的第二个元素重复此迭代,依此类推。
最后我想要一个由所有总和组成的向量。
我很感激你的帮助。
到目前为止我尝试了什么:
(W
,R
,LE
分别是w
,r
,T
变量的向量
M = []
for w in W, r in R, T in LE
for a in 1:T
MM=sum(m(r,T,a,w))
push!(M,MM)
end
end
显然朱莉娅不会意识到我想做什么
答案 0 :(得分:4)
语法:
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)
...
答案 1 :(得分:0)
马特的回答是正确的,但你可能想要改进一些其他的东西,比如类型,并把它放在一个函数中,这样它就不会使用全局变量。你知道这笔钱的类型是什么吗? 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
答案 2 :(得分:0)
感谢您提供非常有用的评论。我设法编写了我想要的代码
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