Tách một mảng với các điều kiện phạm vi

Aug 15 2020

Tôi có một mảng như sau:

    sortedransam={{0.105328, -0.0291632}, {0.253571, 0.00498561}, {0.410887, 
  0.171317}, {1.45579, 0.300952}, {2.56002, -0.0599007}, {3.67651, 
  0.0913857}, {4.44773, -0.21599}, {4.68098, 0.0766649}, {5.20004, 
  0.0153934}, {5.31011, 0.157674}, {6.25626, -0.119345}, {6.35928, 
  0.145992}, {6.52711, -0.0163245}, {7.44436, 0.0334628}, {7.8401, 
  0.305493}, {8.18541, 0.0712892}, {8.21423, -0.0325363}, {9.0921, -0.0242404}, {9.3285, 0.035512}}

sortedransamcolume đầu tiên của đã được sắp xếp. Tôi muốn tách mảng này với các điều kiện cột đầu tiên thành phạm vi ví dụ. 0-2, 2-4, 4-6 ... Sau đó, sortedransamsẽ giống như

    {{{0.105328, -0.0291632}, {0.253571, 0.00498561}, {0.410887, 
  0.171317}, {1.45579, 0.300952}},
  {{2.56002, -0.0599007}, {3.67651, 0.0913857}},
  {{4.44773, -0.21599}, {4.68098, 0.0766649}, {5.20004, 0.0153934}, {5.31011, 0.157674}},
  {{6.25626, -0.119345}, {6.35928, 0.145992}, {6.52711, -0.0163245}, {7.44436, 0.0334628}, 
  {7.8401,0.305493}},
  {{8.18541, 0.0712892}, {8.21423, -0.0325363}, {9.0921, -0.0242404}, {9.3285, 0.035512}}}

Tôi có nên sử dụng SplitByhay thứ gì khác không? Tôi không biết làm thế nào để thực hiện các điều kiện.

Trả lời

5 kglr Aug 15 2020 at 20:31
SplitBy[sortedransam, Quotient[First[#], 2] &]
 {{{0.105328, -0.0291632}, {0.253571, 0.00498561}, {0.410887, 0.171317}, {1.45579, 0.300952}},
 {{2.56002, -0.0599007}, {3.67651, 0.0913857}}, 
 {{4.44773, -0.21599}, {4.68098, 0.0766649}, {5.20004, 0.0153934}, {5.31011, 0.157674}}, 
 {{6.25626, -0.119345}, {6.35928, 0.145992}, {6.52711, -0.0163245}, 
  {7.44436, 0.0334628}, {7.8401, 0.305493}},
 {{8.18541, 0.0712892}, {8.21423, -0.0325363}, {9.0921, -0.0242404}, {9.3285, 0.035512}}}

Bạn cũng có thể sử dụng BinLists:

Join @@ BinLists[sortedransam, {0, 10, 2}, {-1, 1, 2}]

cùng một kết quả

4 J.M.'sennui Aug 15 2020 at 20:18

Không quá khó với GatherBy[]+ Floor[]:

GatherBy[sortedransam, Floor[First[#], 2] &]
   {{{0.105328, -0.0291632}, {0.253571, 0.00498561}, {0.410887, 0.171317},
     {1.45579, 0.300952}},
    {{2.56002, -0.0599007}, {3.67651, 0.0913857}},
    {{4.44773, -0.21599}, {4.68098, 0.0766649}, {5.20004, 0.0153934},
     {5.31011, 0.157674}},
    {{6.25626, -0.119345}, {6.35928, 0.145992}, {6.52711, -0.0163245},
     {7.44436, 0.0334628}, {7.8401, 0.305493}},
    {{8.18541, 0.0712892}, {8.21423, -0.0325363}, {9.0921, -0.0242404},
     {9.3285, 0.035512}}}