我通常对变量执行操作,然后将该操作的结果分配给变量。只有几个这样的例子:
A = [A; -A];
B = B.'; %'
bigArray = bigArray(:,:,1:8,9);
distMatrix = sqrt(sum(distMatrix.*distMatrix,3));
是否更快/更有效/更好的编码实践以避免此类使用并将答案分配给新变量,例如:
myNewArray = sum([elephant(operation(myArray),8); -myArray.'],3);
在我看来,它应该被认为是更好的编码实践,但从纯粹的速度和记忆的角度来看,哪个更好?
感谢。
答案 0 :(得分:3)
就速度和性能而言,与您正在执行的计算相比,分配给新变量的开销几乎没有。从技术上讲,重用现有变量可以避免创建新变量所需的新引用。如果您使用的是64位操作系统,那么这将是8个字节的内存。
如果您经常在循环内部分配新变量,那么唯一可能会注意到此分配的执行情况。即使这样,引用也将在堆栈上,因此它仍然可以忽略不计。