【发布时间】:2017-09-23 23:13:51
【问题描述】:
考虑一下这段代码:
q = zeros(5,5);
x = rand(5,5);
function testFunc!(n, q, x)
for i = 1:n
q .= x.^2;
end
end
我初始化q 并通过就地赋值函数更新q 中的值。无论我如何选择n,分配的数量都是恒定的,因为我没有创建任何新内容。
但是,有没有办法编写一个名为 testFunc2 的函数,如下所示:
q = zeros(5,5)
x = rand(5,5);
q = testFunc2(n, x)
这样内存分配对于n是不变的。
我知道这看起来很傻,但在我的实际代码中,我有许多类似于q 的变量,并且我有一个循环在每次迭代时更新它们。我不希望代码占用过多的内存。如果我编写一个看起来像testFunc2(n, x, q1, q2, q3, q4) 的函数,它的语法看起来会很麻烦。因此,我希望能够拥有q1, q2, q3, q4 = testFunc2(n, x) 而不必担心内存。
【问题讨论】:
标签: julia allocation