matlab函数返回大量变量需要更长时间才能执行

时间:2012-12-07 06:11:52

标签: matlab

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

1 个答案:

答案 0 :(得分: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

因此需要更长时间,但我怀疑这种差异是否足以超过其他考虑因素。