Dividir uma matriz com condições de intervalo
Eu tenho uma matriz como a seguir:
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}}
sortedransam
a primeira coluna de foi classificada. Gostaria de dividir esse array com condições que a primeira coluna em range ex. 0-2, 2-4, 4-6... Então o sortedransam
deve ser como
{{{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}}}
Devo usar SplitBy
ou algo mais? Não sei como implementar as condições.
Respostas
5 kglr
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}}}
Você também pode usar BinLists:
Join @@ BinLists[sortedransam, {0, 10, 2}, {-1, 1, 2}]
mesmo resultado
4 J.M.'sennui
Não é muito difícil com 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}}}
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas