フィルターのクリア

Info

この質問は閉じられています。 編集または回答するには再度開いてください。

decrease the time of calculating

1 回表示 (過去 30 日間)
fatema saba
fatema saba 2015 年 11 月 4 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
Hi I want to decrease the time of calculating in my algorithm. in this algorithm there is an objective function.in every iteration x is achieved from main loop of algorithm then it is entered to objective function in order to calculate the value of objective function. x is a matrix with 1000 rows and 1000 columns and 4 in third dimension. it is (0-1)matrix. also there is the other matrix (c). this matrix has the same rows, columns and third dimension with values between (1-256).this matrix is constant in every iteration.
this is my code:
z=sum(sum(sum(c.*x)))
the function is very simple but why it takes many times to calculate in every iteration.

回答 (1 件)

Jan
Jan 2015 年 11 月 4 日
編集済み: Jan 2015 年 11 月 4 日
Try:
L = (x == 1); % Convert it to a logical array outside the loops
...
z = sum(c(L))
To my surprise logical indexing was not implemented efficiently - at least in former Matlab versions. So you can give this a try: FEX: CopyMask
z = sum(CopyMask(c, L));

この質問は閉じられています。

タグ

タグが未入力です。

Community Treasure Hunt

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

Start Hunting!

Translated by