对变量执行操作并将其分配给同一变量

时间:2016-01-14 02:11:58

标签: performance matlab variables

我通常对变量执行操作,然后将该操作的结果分配给变量。只有几个这样的例子:

A = [A; -A];
B = B.';  %'
bigArray = bigArray(:,:,1:8,9);
distMatrix = sqrt(sum(distMatrix.*distMatrix,3));

是否更快/更有效/更好的编码实践以避免此类使用并将答案分配给新变量,例如:

myNewArray = sum([elephant(operation(myArray),8); -myArray.'],3);

在我看来,它应该被认为是更好的编码实践,但从纯粹的速度和记忆的角度来看,哪个更好?

感谢。

1 个答案:

答案 0 :(得分:3)

就速度和性能而言,与您正在执行的计算相比,分配给新变量的开销几乎没有。从技术上讲,重用现有变量可以避免创建新变量所需的新引用。如果您使用的是64位操作系统,那么这将是8个字节的内存。

如果您经常在循环内部分配新变量,那么唯一可能会注意到此分配的执行情况。即使这样,引用也将在堆栈上,因此它仍然可以忽略不计。