Главная  Длительная эволюция 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [ 35 ] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]

Complement[{a, Ь, d, е, с}, {а, е}, {е, Ь}]

{c,d]

В конце данного раздела рассмотрим функции, осуществляющие структурные изменения в списках. Функция Partition в выражении Partition[Iist,n] разбивает список на неперекрывающиеся части длины п, начиная с первого элемента списка. Если число элементов в списке не делится нацело на п, то последние к {к <п) элементов удаляются из списка.

Partition[{l,2,3,4,5},2] {{1,2},{3,4}}

Эта же функция в выражении Partition[list,n,d] приводит к разбиению на части длины п с отступом d, т.е. первый элемент второго подсписка имел номер d+1 в исходном списке. Таким образом, подсписки перекрываются при d<n

Partition[{l, 2,3,4,5,6,7,8,9}, 3,2] {{1,2,3},{3,4,5},{5,6,7},{7,8,9}}

Partition[{l,2,3,4,5,6,7,8,9},3,4]

{{1,2,3},{5,6,7}}

Если функция Partition приводит к появлению дополнительного уровня в списке, то функция Flatten уменьшает их число. А именно Flatten в выражении Flatten[list] приводит к одноуровневому списку:

Flatten[{l, {2, {3,4, {5,6}}}, {7,8}}] {1,2,3,4,5,6,7,8}

а в выражении Flatten[list, п] убирает заголовки List только до уровня п включительно.

Flatten[{l, {2, {3,4, {5,6}}}, {7,8}},2] {1,2,3,4,{5,6},7,8}



m={{{a,b},{c,d},{e,f}},

{{1,2},{3,4},{5,6}},

{{aa,bb},{cc,dd},{ee,ff}},

{{11,12},{13,14},{15,1в}}}

Список т содержит четыре элемента, каждый из которых является списком и состоит из трех списков по два элемента в каждом, которые являются символами или числами. Позиции этис символов и чисел можно охарактеризовать с помощью трех чисел - координат: первое указывает, в какой из строк находится рассматриваемый символ или число, второе - в каком

Модификацией функции Flatten является функция Flatten At, которая применяет Flatten к частям списка.

FlattenAt[{l,{2,{3,4,{5,6}}},{7,8}},3] {1,{2,{3,4,{5,6}}},7,8}

Очень интересной функцией является Transpose. Если она применяется к списку, представляющему собой прямоугольную матрицу, то результатом будет транспонированная матрица. Пусть т= {{а,Ь,с},{1,2,3}}, тогда

m / / MatrixForm Transpose[m] MatrixForm

a b с 1 2 3

a 1 b 2 с 3

Более содержательную структурную перестройку вложенных списков можно осуществить в случае, когда список содерь жит более одного уровня и представляет не обычную двухмерь ную матрицу, а матрицу более высокой размерности. Рассмотрим в качестве примера трехмерную матрицу



ИЗ списков строки оно содержится, третье - его положение в самом внутреннем списке. Таким образом, каждый символ или число можно рассматривать как матричный элемент Triijk Транспонирование матрицы т означает перестановку индексов. Всего возможны шесть транспозиций. Транспозиция {3,1,2} означает, что в новой матрице первый индекс есть второй индекс исходной матрицы, второй индекс есть прежний третий, а третий индекс - прежний первый. Приведем в качестве примера две транспозиции матрицы, или списка, т.

Transpose[m,{2,l,3}] {{{а,Ь},{1,2},{аа,ЬЬ},{11,12}},

{{c,d},{3,4},{cc,dd},{l3,14}},

{{е,/},{5,6},{ее, },{15,16}}}

Transpose[m,{3,l,2}] {{а,1,аа,11},{Ь,2,6Ь,12}}, {{c,3,cc,13},{d,4,dd,14}}, {{е,5,ее,15},{/,6, ,16}}}

Последней функцией, которую мы упомянем в этом разделе, является функция Join, осуществляющая сцепление (конкатенацию) списков.

Join[{a,b,c,},{l,2},{x,y}] {а,Ь,с,1,2,1,у}

4.3. Работа с векторами и матрицами

Векторы в „Математике" трактуются как линейные, т.е. одноуровневые, списки: V = {ul,u2,u3}; матрицы как двухуровневые: т= {{mll,ml2,ml3},{m21,m22,m23}}, хотя компоненты векторов и матриц могут быть произвольными выражениями. Ввиду важной роли этих объектов в теоретических и прикладных вопросах в „Математике" определены несколько функций, предназначенных для работы с векторами и матрицами.



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [ 35 ] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]

0.001