2011-02-11 31 views
8

Mam listę list (macierzy) w matematyce. Chcę go wydrukować ładnie, z maksimum w każdym rzędzie pogrubionym. Jak to zrobić?Ładnie wydrukuj macierz w matematyce

A może jeszcze dalej, z kółkiem poza takim maksimum, jest to możliwe?

Odpowiedz

19

Można użyć MatrixForm wydrukować matryce ładnie:

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

data // MatrixForm 

daje

MatrixForm image

można narysować okrąg wokół maksimum w każdym rzędzie, co następuje:

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

plonowanie

matrix with circles

RoundingRadius -> 1000 używa absurdalnie duży parametr, aby uzyskać kręgi. Może być konieczne dostosowanie stałej w zależności od skali wyświetlacza.

Możesz zmienić Framed[m...] z Style[m, Bold], jeśli wolisz pogrubienie.

+0

Podoba mi się '# /. m: Max [#] -> ... 'konstrukcja. (+1) – Simon

8

Siatka [] zapewnia precyzyjną kontrolę ziarna na wyświetlaczu. Na przykład:

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> Będzie wyróżnić tylko jeden element w każdym wierszu

Edycja

Aby wyróżnić każdą max elementu, można to zrobić na przykład:

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, zajmie mi trochę czasu, aby dowiedzieć się, dlaczego twój pierwszy przykład podkreśla tylko jeden element. – rcollyer

+0

@rcollyer Nie ma w tym nic tajemniczego. ** Kolejność [l, -1] ** zwraca tylko jeden element. –

+2

ah, widzę. 'MapIndexed' zwraca listę z elementami formularza' {row_num, first_max_pos} -> {Bold, Red} '. – rcollyer