У меня есть список списков (матрица) в математике. Я хочу распечатать его красиво, с максимальным значением в каждой строке, выделенным жирным шрифтом. Как это сделать?
А может еще дальше, с кругом вне такого макса, такое возможно?
У меня есть список списков (матрица) в математике. Я хочу распечатать его красиво, с максимальным значением в каждой строке, выделенным жирным шрифтом. Как это сделать?
А может еще дальше, с кругом вне такого макса, такое возможно?
Вы можете использовать MatrixForm
для красивой печати матриц:
data = RandomInteger[100, {5, 5}];
data // MatrixForm
урожаи
Вы можете нарисовать круг вокруг максимума в каждом ряду следующим образом:
Map[# /. m : Max[#] :> Framed[m, RoundingRadius -> 1000] &, data] //
MatrixForm
уступающий
RoundingRadius -> 1000
использует смехотворно большой параметр для получения кругов. Возможно, вам придется настроить константу в зависимости от масштаба вашего дисплея.
Вы можете заменить Framed[m...]
на Style[m, Bold]
, если предпочитаете полужирный шрифт.
# /. m:Max[#] -> ...
. (+1)
- person Simon; 11.02.2011
Сетка[ ] обеспечивает точную регулировку зернистости изображения на дисплее. Например:
g[a_] := Grid[a,
Background -> {None, {{LightBlue, LightRed}}},
Dividers -> {False, All},
ItemStyle -> {Automatic, Automatic,
MapIndexed[Flatten@{#2, Ordering[#1, -1]} -> {Bold, Red} &, a]}]
g[RandomInteger[100, {10, 7}]]
NB> Он будет выделять только один элемент в строке
Изменить
Чтобы выделить каждый максимальный элемент, вы можете сделать, например:
g[a_] := Grid[a,
Background -> {None, {{LightBlue, LightRed}}},
Dividers -> {False, All},
ItemStyle -> {Automatic, Automatic,
Flatten[Tuples[{First@#, Last@#}] & /@
MapIndexed[{#2, Position[#1, Max[#1]]} &, a],
1] /. {q_, {r_}} -> ({q, r} -> {Red, Bold})}]
MapIndexed
возвращает список с элементами вида {row_num, first_max_pos}-> {Bold, Red}
.
- person rcollyer; 12.02.2011