why below code takes longer time to execute, even with only one input image it takes longer time to execute.

1 回表示 (過去 30 日間)
We plan to use this code for 1000 images so it is very difficult to complete so any other way is there to do this.

採用された回答

Guillaume
Guillaume 2018 年 4 月 4 日
You haven't vectorised any of your code. Try this:
function [Fcc,Fcs,Fsc,Fss]=fun_cosine_series2(f,u,v)
a = pi * u / size(f, 1);
b = pi * v / size(f, 2);
rows = (1:size(f, 1)).';
cols = 1:size(f, 2);
cos1 = cos(a * (rows + 0.5));
cos2 = cos(b * (cols + 0.5));
sin1 = sin(a * (rows + 0.5));
sin2 = sin(b * (cols + 0.5));
Fcc = sum(sum(f .* cos1 .* cos2));
Fcs = sum(sum(f .* cos1 .* sin2));
Fsc = sum(sum(f .* sin1 .* cos2));
Fss = sum(sum(f .* sin1 .* sin2));
end
It requires R2016b or later for implicit expansion, if you're on an earlier version replace all the sum(sum(f .* x .* y)) by
sum(sum(f .* bsxfun(@times, x, y)))
where x and y are the respective cos an sin vectors obviously.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeNumerical Integration and Differential Equations についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by