开发者

Cutting down large matrix iteration time

I have some massive matrix computation to do in MATLAB. It's nothing c开发者_如何学编程omplicated (see below). I'm having issues with making computation in MATLAB efficient. What I have below works but the time it takes simply isn't feasible because of the computation time.

for i = 1 : 100
   for j = 1 : 20000
      element = matrix{i}(j,1);
      if element <= bigNum && element >= smallNum
         count = count + 1; 
      end    
   end    
end

Is there a way of making this faster? MATLAB is meant to be good at these problems so I would imagine so?

Thank you :).


count = 0
for i = 1:100
    count = count + sum(matrix{i}(:,1) <= bigNum & matrix{i}(:,1) >= smallNum);
end


If your matrix is a matrix, then this will do:

count = sum(matrix(:) >= smallNum & matrix(:) <= bigNum);

If your matrix is really huge, use anyExceed. You can profile (check the running time) of both functions on matrix and decide.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜