2011-02-11 2 views
8

У меня есть список списков (матрица) в математике. Я хочу распечатать его красиво, с max в каждой строке выделены жирным шрифтом. Как это сделать?красиво распечатать матрицу в математике

Или возможно даже дальше, с кругом вне такого максимума, это возможно?

ответ

19

Вы можете использовать MatrixForm распечатать матрицы красиво:

data = RandomInteger[100, {5, 5}]; 

data // MatrixForm 

дает

MatrixForm image

Вы можете нарисовать круг вокруг максимума в каждой строке следующим образом:

Map[# /. m : Max[#] :> Framed[m, RoundingRadius -> 1000] &, data] // 
    MatrixForm 

с получением

matrix with circles

RoundingRadius -> 1000 использует смехотворно большой параметр, чтобы получить круги. Возможно, вам придется настраивать константу в зависимости от масштаба вашего дисплея.

Вы можете изменить Framed[m...] с Style[m, Bold], если вам нравится жирный шрифт.

+0

Мне нравится '# /. m: Max [#] -> ... 'construction. (+1) – Simon

8

Сетка [] дает тонкое управление зерном на дисплее. Например:

g[a_] := Grid[a, 
    Background -> {None, {{LightBlue, LightRed}}}, 
    Dividers -> {False, All}, 
    ItemStyle -> {Automatic, Automatic, 
    MapIndexed[[email protected]{#2, Ordering[#1, -1]} -> {Bold, Red} &, a]}] 

g[RandomInteger[100, {10, 7}]] 

enter image description here

NB> Это будет выделить только один элемент для каждой строки

Редактировать

Чтобы выделить каждый максимальный элемент, вы могли бы сделать, например:

g[a_] := Grid[a, 
    Background -> {None, {{LightBlue, LightRed}}}, 
    Dividers -> {False, All}, 
    ItemStyle -> {Automatic, Automatic, 
    Flatten[Tuples[{[email protected]#, [email protected]#}] & /@ 
     MapIndexed[{#2, Position[#1, Max[#1]]} &, a], 
     1] /. {q_, {r_}} -> ({q, r} -> {Red, Bold})}] 

enter image description here

+0

+1, мне понадобится немного времени, чтобы понять, почему ваш первый пример только подчеркивает один элемент. – rcollyer

+0

@rcollyer Нет тайн вокруг этого. ** Заказ [l, -1] ** возвращает только один элемент. –

+2

ах, я вижу. «MapIndexed» возвращает список с элементами формы '{row_num, first_max_pos} -> {Bold, Red}'. – rcollyer

Смежные вопросы