我有一个返回向量的函数。由于我多次调用此函数,我希望它更新我提供给它的向量而不是创建一个新向量。这是为了避免使用内存,从而提高速度。
原始代码基本上如下:
function!(prob1,pi,prob0)
prob1=pi'*prob0
return prob1
end
当然,每次都会创建一个新的prob1矢量。我试图以两种不同的方式修改它:
function!(prob1,pi,prob0)
for i in 1:length(prob1)
prob1[i]=pi[:,i]'*prob0
end
return prob1
end
#OR
function!(prob1,pi,prob0)
for i in 1:length(prob1)
prob1[i]=dot(pi[:,i],prob0)
end
return prob1
end
但是,它们运行速度都比原始代码慢,尽管它们使用的内存较少。任何改善表演时间的建议都会很棒。
答案 0 :(得分:3)
你实际上不需要定义一个函数,已经存在一个函数(虽然没有文档记录):if(s.length() > 0)
应该给你你想要的东西。