我在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是为了擅长这些问题所以我想是这样吗?
谢谢你:)。
答案 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
上查看(检查运行时间)两个函数并确定。