vectorization examples for efficiency

1 回表示 (過去 30 日間)
feynman feynman
feynman feynman 2024 年 3 月 10 日
コメント済み: feynman feynman 2024 年 3 月 11 日
I wonder if the following expressions are already optimized forms for computational efficiency and if not how to rewrite them?
x=linspace(0,1);
0*x; x+1
a=[x;x]
[2*x;a(1,:)]
repmat([1;1;0],1,10);

採用された回答

Walter Roberson
Walter Roberson 2024 年 3 月 10 日
x = 0:1/99:1;
zeros(size(x)); x+1
a=[x;x];
[2*x; x]
repmat([1;1;0],1,10);
  3 件のコメント
Walter Roberson
Walter Roberson 2024 年 3 月 11 日
編集済み: Walter Roberson 2024 年 3 月 11 日
Interesting
When I try it several times, the times vary pretty wildly, including cases where the 0*x comes out much slower.
format long g
testit();
testit();
T = testit()
T = 3×1
0.000366 0.001324 0.000718
function T = testit()
T = zeros(3,1);
N = 10000;
x = linspace(0,1);
start = tic; for K = 1:N; Z = 0*x; end; T(1) = toc(start);
start = tic; for K = 1:N; Z = zeros(size(x)); end; T(2) = toc(start);
start = tic; for K = 1:N; Z = zeros(1,100); end; T(3) = toc(start);
end
feynman feynman
feynman feynman 2024 年 3 月 11 日
, which means 0*x and zeros(size(x)) aren't necessarily better or worse than the other?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by