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?
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?
Można użyć MatrixForm
wydrukować matryce ładnie:
data = RandomInteger[100, {5, 5}];
data // MatrixForm
daje
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
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.
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}]]
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})}]
+1, zajmie mi trochę czasu, aby dowiedzieć się, dlaczego twój pierwszy przykład podkreśla tylko jeden element. – rcollyer
@rcollyer Nie ma w tym nic tajemniczego. ** Kolejność [l, -1] ** zwraca tylko jeden element. –
ah, widzę. 'MapIndexed' zwraca listę z elementami formularza' {row_num, first_max_pos} -> {Bold, Red} '. – rcollyer
Podoba mi się '# /. m: Max [#] -> ... 'konstrukcja. (+1) – Simon