How to speed up max function? The following line [a,b] = max(c(1:24,1,2,3)) takes 2685.49s for calling 541390285 times. Is there any way to speed up?
c=randi(100,[24,3,3,3]);
for i=1:1000000
[a,b] = max(c(1:24,1,2,3));
end

 採用された回答

dpb
dpb 2018 年 4 月 12 日

0 投票

A significant fraction is undoubtedly the addressing of the 4D array; the same fragment but
d=c(1:24,1,2,3);
for i=1:1000000
[a,b] = max(d);
end
cut the time by almost 50%. Whether the real application allows that simplification is unknown, but the concept of reducing the data structure overhead is key one.

1 件のコメント

Chaoyang Jiang
Chaoyang Jiang 2018 年 4 月 13 日
Thank you very much for your reply.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeStatistics and Machine Learning Toolbox についてさらに検索

質問済み:

2018 年 4 月 12 日

コメント済み:

2018 年 4 月 13 日

Community Treasure Hunt

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

Start Hunting!

Translated by