Info
La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.
decrease the time of calculating
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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.
0 comentarios
Respuestas (1)
Jan
el 4 de Nov. de 2015
Editada: Jan
el 4 de Nov. de 2015
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));
0 comentarios
La pregunta está cerrada.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!