开发者

Cutting down large matrix iteration time

开发者 https://www.devze.com 2023-02-16 00:02 出处:网络
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

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

精彩评论

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