#N canvas 199 0 718 600 10; #X obj 48 162 mtx_print; #X obj 48 134 mtx_transpose; #X obj 48 81 mtx_ones; #X msg 48 59 3 5; #X text 45 42 transpose a matrix; #X text 188 7 tranpose/shift matrices; #X obj 37 349 mtx_print; #X msg 37 246 1 2 3 4 5; #X text 33 229 shift rows of a matrix; #X floatatom 104 301 4 0 0 0 - - -; #X obj 37 321 mtx_scroll 1; #X obj 37 268 mtx_diag; #X obj 414 333 mtx_print; #X msg 414 230 1 2 3 4 5; #X floatatom 481 285 4 0 0 0 - - -; #X obj 414 252 mtx_diag; #X text 410 213 shift columns of a matrix; #X obj 414 306 mtx_roll 1; #X text 517 286 shift amount (0=no-shift \; 1=1-column-right \; -2=2-columns-left \; ...); #X text 143 299 shift amount (0=no-shift \; 1=1-row-down \; -2=2-rows-up \; ...); #X text 29 409 pivot-transform a matrix; #X obj 33 494 mtx_pivot; #N canvas 352 114 190 367 rand-matrix 0; #X obj 74 163 inlet; #X obj 74 270 outlet; #X obj 74 195 mtx_rand; #X obj 74 215 mtx_* 10; #X obj 74 237 l2i; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 1 0; #X restore 33 448 pd rand-matrix; #X msg 33 426 4 3; #X obj 82 515 mtx_print post; #X obj 57 535 mtx_print pre; #X obj 33 575 mtx_print pivot; #X obj 485 95 matrix; #X text 435 77 see also help for; #X text 280 494 the first outlet is the pivot-transformed matrix.; #X text 279 520 the other outlets are the 1/0-matrices that have to be pre-multiplied (row-tranform) and post-multiplied (column-tranform) to the original matrix to get the pivot-tranformation. this is useful for de-pivoting.; #X text 281 445 this will tranform the columns and rows \, so that the result will have all maximum values in the diagonale. the maximum of the matrix will be located at the upper-left corner.; #X obj 33 471 t a a; #X obj 73 471 mtx_print original; #X msg 145 429 matrix 4 3 1 2 3 4 5 6 7 8 9 10 11 12; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 7 0 11 0; #X connect 9 0 10 1; #X connect 10 0 6 0; #X connect 11 0 10 0; #X connect 13 0 15 0; #X connect 14 0 17 1; #X connect 15 0 17 0; #X connect 17 0 12 0; #X connect 21 0 26 0; #X connect 21 1 25 0; #X connect 21 2 24 0; #X connect 22 0 32 0; #X connect 23 0 22 0; #X connect 32 0 21 0; #X connect 32 1 33 0; #X connect 34 0 32 0;