3

Is it possible to create a dynamically changing binary $n \times n$ matrix $A$, which appears to the user as a $n \times n$ matrix/table of checkboxes and the user can change the entries of $A$ by checking or unchecking these checkboxes? If yes, what would be the easiest way?

kglr
  • 394,356
  • 18
  • 477
  • 896
MthQ
  • 133
  • 2

1 Answers1

6

Modifying last example in Manipulate>Neat Examples (also the second example in this answer):

Manipulate[
  ArrayPlot[Take[data, n, n]], 
  {{data, RandomInteger[{0, 1}, {20, 20}]}, ControlType -> None}, 
  {{n, 5}, 1, 20, 1}, 
  Dynamic[
    Panel[Grid[Outer[Checkbox[Dynamic[data[[#1, #2]]], {0, 1}] &, Range[n], Range[n]]]]]]

enter image description here

kglr
  • 394,356
  • 18
  • 477
  • 896
  • Thank you. Suppose now I would like to use the chosen matrix in following calculations, how would I get further access to the chosen matrix? – MthQ Jul 02 '14 at 12:50
  • @Thomas, you can use Manipulate[ArrayPlot[mat=Take[data, n, n]],...] to hold the chosen matrix in global variable mat. – kglr Jul 02 '14 at 13:13
  • I am going to need the gist of this. Thank you @kglr – nilo de roock May 19 '20 at 19:34