給定Mathematica中的數字列表,我將如何從該列表中提取我指定的數字a
和b
之間的數字總數?查找Mathematica中的數字範圍
回答
最直接的辦法很簡單:
Count[data, x_ /; a <= x <= b]
中多數數據但是快得多的方式,這一個感謝卡爾·沃爾:
[email protected]@Clip[data, {a, b}, {0, 0}]
卡爾·沃爾的方法特別快,但作爲yoda指出,如果你的列表包含零,那麼它失敗,你的範圍也跨過零。下面是從凱文J. McCann的處理這一情況下的另一種方法,並且仍然是非常快:
[email protected][(data - a)*(b - data)]
作爲一個純粹的函數[數據,A,B]:
[email protected][(#-#2)*(#3-#)]&
這是一種方法,你可以嘗試:
freq[a_, b_, list_] := [email protected]@Cases[list, x_ :> a <= x <= b]
lst = RandomInteger[10, 20]
Out = {6, 1, 1, 6, 3, 1, 10, 0, 2, 10, 3, 5, 9, 1, 5, 5, 3, 8, 2, 3}
freq[3, 6, lst]
Out = 9
使用IntervalMemberQ
另一種方法是
freq[a_, b_, list_] :=
[email protected]@IntervalMemberQ[Interval[{a, b}], list]
另一種方法是
NumberOfNumbers[lst_?ListQ, lwr_?NumberQ, upr_?NumberQ] :=
[email protected][lst, (lwr <= # <= upr) &]
d
請看BinCount
:
In[176]:= BinCounts[Range[30], {{2, 11/2}}]
Out[176]= {4}
直接計數比較:
In[177]:= Count[Range[30], x_ /; 2 <= x < 11/2]
Out[177]= 4
Sasha,在Mathematica 7 BinCounts中很慢。這最近有所改善嗎? – 2011-05-17 06:48:27
500萬實物列表上的計時:「計數」= 3.234秒; 'BinCounts' = 39.344秒; 'Clip' = 0.078 Second – 2011-05-17 06:52:46
@ Mr.Wizard'BinCounts'在v8中有所改進,但在時序上依然失去「計數」2倍。 – Sasha 2011-05-17 07:07:10
- 1. 查找範圍中的數字
- 2. 在java中查找數字範圍
- 3. 查找範圍內的數字位置
- 4. 查找數字範圍內的空白
- 5. 查找給定範圍內的數字?
- 6. 查找ASCII字符範圍
- 7. 如何查找數字範圍
- 8. 使用Python re.search查找數字範圍
- 9. SQL - 查找數字範圍中的數字
- 10. 查找範圍
- 11. 查找C中的範圍
- 12. 使用Mathematica中的數字範圍排列矩陣9
- 13. 查找和天數範圍
- 14. 查找數組中的連續範圍
- 15. 在範圍字典中查找值 - python
- 16. 如何在輸入的數字範圍中查找素數
- 17. 在範圍中查找列
- 18. SQL查找範圍
- 19. 查找範圍內整數的數量
- 20. 在數組中查找範圍
- 21. 如何查找範圍來自另一個表的dyamically的數字的範圍?
- 22. 在PHP中檢查數字的範圍
- 23. 數字範圍查詢
- 24. 查找基於範圍內的數字的字符串
- 25. 在SQL中查找範圍的羅馬數字
- 26. 如何查找特定範圍FAST中的字符串數量?
- 27. 查找範圍內的範圍值之和數量
- 28. 查找指定的範圍
- 29. 查找範圍內的值
- 30. 變量的查找範圍
感謝您的接受。 – 2011-05-17 07:36:59