1

我只是好奇
如果一个函数需要返回大量变量,执行是否需要更长的时间?我有一个计算值并将它们存储在数组中的函数。每次调用它都会计算这些值,并且调用的次数没有改变。但是现在我已经添加了一些返回值(每个都是一个包含大约 1500 个双元素的大数组,该函数返回 8~10 个这样的数组,而不是仅仅计算它们)该函数似乎需要更长的时间来执行(之前使用 tic 检查函数调用和函数调用后的toc。这是否会导致总执行时间更多?

4

1 回答 1

1

事实上,如果你让函数输出更多的争论,它确实需要更长的时间。我想这与存储结果有关。

这是我的测试功能:

function [q, w, e, r, t, y, u, i, o, p] = tests

q = rand(100);
w = rand(100);
e = rand(100);
r = rand(100);
t = rand(100);
y = rand(100);
u = rand(100); 
i = rand(100); 
o = rand(100); 
p = rand(100); 

这些是我用来测试速度的设置:

clear
tic
for i = 1:100
   %q = tests; %Only one output argument
   [q w e r t y u i o p] = tests; %Several output arguments
end
toc

差异不是很大,但我运行了几次,结果看起来确实很重要:

Only one output argument: 0.1354 average +- 0.0001
Several output arguments: 0.1367 average +- 0.0001

所以这需要更长的时间,但我怀疑这种差异是否足够有趣,足以胜过其他考虑。

于 2013-01-22T13:15:26.237 回答