减少大矩阵迭代时间

时间:2011-03-09 16:54:08

标签: matlab

我在MATLAB中有一些大规模的矩阵计算。这并不复杂(见下文)。我在MATLAB中有效地进行计算时遇到了问题。我下面的工作是有效的,但由于计算时间的原因,所需的时间是不可行的。

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

有没有办法让这更快? MATLAB是为了擅长这些问题所以我想是这样吗?

谢谢你:)。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

如果您的matrix是矩阵,那么这样做:

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

如果您的矩阵非常庞大,请使用anyExceed。您可以在matrix上查看(检查运行时间)两个函数并确定。