2011-02-11 12 views
8

Ho una lista di liste (matrice) in matematica. Voglio stamparlo bene, con il massimo di ogni riga in grassetto. Come fare questo?stampa bene una matrice in matematica

O forse anche oltre, con un cerchio al di fuori di tale max, è possibile?

risposta

19

È possibile utilizzare MatrixForm per stampare le matrici bene:

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

data // MatrixForm 

cede

MatrixForm image

è possibile disegnare un cerchio intorno al massimo in ogni riga come segue:

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

ottenendo

matrix with circles

RoundingRadius -> 1000 utilizza un ridicolmente grande di parametri per ottenere cerchi. Potrebbe essere necessario regolare la costante in base alla scala del display.

È possibile modificare Framed[m...] con Style[m, Bold] se si preferisce in grassetto.

+0

Mi piace il '# /. m: Max [#] -> ... 'costruzione. (+1) – Simon

8

Griglia [] fornisce un controllo a grana fine sull'aspetto del display. Per esempio:

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> Sarà evidenziare solo un elemento per riga

Modifica

Per evidenziare ogni elemento massimo, si potrebbe fare per esempio:

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, mi ci vorrà un po 'di tempo per capire perché il tuo primo esempio evidenzia solo l'elemento. – rcollyer

+0

@rcollyer Nessun mistero intorno a questo. ** Ordinando [l, -1] ** restituisce solo un elemento. –

+2

ah, capisco. 'MapIndexed' restituisce una lista con elementi della forma' {row_num, first_max_pos} -> {Bold, Red} '. – rcollyer

Problemi correlati