Performance 对变量执行操作并将其分配给同一变量
我通常对一个变量执行一个操作,然后将该操作的结果分配给该变量。仅举几个这样的例子:Performance 对变量执行操作并将其分配给同一变量,performance,matlab,variables,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.'],
A = [A; -A];
B = B.'; %'
bigArray = bigArray(:,:,1:8,9);
distMatrix = sqrt(sum(distMatrix.*distMatrix,3));
避免此类使用并将答案分配给新变量是否更快/更高效/更好的编码实践,例如:
myNewArray = sum([elephant(operation(myArray),8); -myArray.'],3);
在我看来,它应该被认为是更好的编码实践,但从纯粹的速度和内存的角度来看,哪个更好
谢谢。就速度和性能而言,与您正在执行的计算相比,分配给新变量的开销不会太大。从技术上讲,重用现有变量可以避免创建新变量所需的新引用。如果您使用的是64位操作系统,这将是8字节的内存
这种分配的性能唯一可能被注意到的时间是在循环中不断地分配给一个新变量。即使如此,引用仍将在堆栈上,因此它仍然可以忽略不计。在相关注释中,Matlab提供了一个分析器。因此,如果您对性能有任何疑问,您总是可以针对这两种实现运行探查器并检查差异@JeremyMangas谢谢,我考虑过使用探查器,但在那个阶段,我还没有完全实现垃圾代码!代码prettyfier似乎也不识别MATLAB的
“
操作符,但认为我还没有结束引用!很好地使用了,
而不是,
你应该祝贺我的老师;我不知道你只能用“
进行转置。