【发布时间】:2011-04-28 21:57:36
【问题描述】:
我有一大组(4000 个值)未排序的正态分布点。我将这些数据点中的每一个都放入限制在 BinLimit 数组中的 bin 中。然后我将每个 bin 中的值的数量制成表格。
X 是原始数据的数组,N 是数据点的数量。所需的 bin 数量 (TotalBins) 由用户指定。
方法#1
for i=1:TotalBins
Freq(i) = length(find(X >= BinLimit(j) & X <= BinLimit(j+1)));
j = j + 1;
end
方法#2:
sort(X);
for i=1:N
if (X(i) >= BinLimit(j) && X(i) <= BinLimit(j+1))
Freq(j) = freq(j) + 1;
elseif (j < TotalBins)
Freq(j+1) = freq(j+1) + 1;
j = j + 1;
end
end
现在,我知道第一个解决方案速度较慢 - 对于 Total Bins (25-50) 的正常值,它大约慢 8 倍,但我想知道是否有比我正在做的更快、更有效的解决方案方法#2。
【问题讨论】:
标签: matlab optimization loops