事實上,如果讓函數輸出更多的參數,它會花費更長的時間,我猜它與存儲結果有關。
這裏是我的testfunction:
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
因此,這將需要更長的時間,但我懷疑這種差異是否足以引起其他考慮。
你用tic/toc檢查了兩種情況,而且你的返回值需要更長的時間,這一點可以通過你自己的實驗確認。這聽起來像你已經證實,它需要更長的時間。至少對於你的情況。也許看看剖析器。 – johnish
但它應該需要更長的時間?它不計算任何更多的值,但返回它需要計算的值 – user13267
@ user13267它可能是因爲值現在需要複製到父工作區。 – mythealias