2015-04-24 3 views
3

По умолчанию Maxima отображает списки «по горизонтали»:Maxima: отображение списка по вертикали

(%i1) myList : [1,3,7]$ 
     myList; 

(%o1) [1,3,7] 

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

(%i1) myList : [1,3,7]$ 
     transpose(myList); 

(%o1) ⎡1⎤ 
     ⎢3⎥ 
     ⎣7⎦ 

Я мог бы также хочу, чтобы отобразить два списка по вертикали, один за другим:

(%i1) myList  : [1,3,7]$ 
     myOtherList : [6,2,4]$ 
     print(transpose(myList),transpose(myOtherList); 

(%o1) ⎡1⎤ ⎡6⎤ 
     ⎢3⎥,⎢2⎥ 
     ⎣7⎦ ⎣4⎥ 

Как вы можете видеть, у меня есть рабочее решение. Однако для ввода & требуется много символов. Поэтому мой вопрос: есть ли более элегантный способ добиться аналогичного результата?

ответ

1

Один из вариантов: Определите свой собственный myprint, который принимает список аргументов для печати, передает элементы, которые являются матрицами, а затем распечатывает список.

Тогда вы можете написать

myprint([ myList, myOtherList ]); 
+0

Это один из способов, на самом деле. –