Re: Freeze Panes in Grid Expression (addendum)
- To: mathgroup at smc.vnet.net
- Subject: [mg105134] Re: [mg105060] Freeze Panes in Grid Expression (addendum)
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Sun, 22 Nov 2009 06:08:15 -0500 (EST)
- Reply-to: hanlonr at cox.net
The following suppresses scroll bars that are not needed and uses VerticalSlider for scrolling rows (with direction reversed).
scrollMatrix[m_?MatrixQ, rows_Integer, columns_Integer] :=
Module[{maxR,
nC = Min[columns, Length[m[[1]]]],
nR = Min[rows, Length[m]]},
maxR = Length[m] - nR + 2;
Manipulate[
Grid[
Drop[m[[1 ;; maxR + nR - r]], 2 ;; maxR - r + 1]
[[All, {1, Sequence @@ Range[c, c + nC - 2]}]],
Dividers -> {{False, True}, {False, True}}],
{{r, maxR}, 2, maxR, 1,
ControlType -> VerticalSlider},
{c, 2, Length[m[[1]]] - nC + 2, 1},
ControlPlacement -> {Left, Top}]] /;
rows < Length[m] &&
columns < Length[m[[1]]]
scrollMatrix[m_?MatrixQ, rows_Integer, columns_Integer] :=
Module[{maxR = Length[m] - rows + 2},
Manipulate[
Grid[
Drop[m[[1 ;; maxR + rows - r]], 2 ;; maxR - r + 1],
Dividers -> {None, {False, True}}],
{{r, maxR}, 2, maxR, 1,
ControlType -> VerticalSlider},
ControlPlacement -> Left]] /; rows < Length[m]
scrollMatrix[m_?MatrixQ, rows_Integer, columns_Integer] :=
Manipulate[
Grid[
m[[All, {1, Sequence @@ Range[c, c + columns - 2]}]],
Dividers -> {{False, True}, None}],
{c, 2, Length[m[[1]]] - columns + 2, 1}] /; columns < Length[m[[1]]]
scrollMatrix[m_?MatrixQ, rows_Integer, columns_Integer] :=
Grid[m]
m = Array[a, {3, 3}];
scrollMatrix[m, 6, 5]
m = Array[a, {15, 3}];
scrollMatrix[m, 6, 5]
m = Array[a, {3, 15}];
scrollMatrix[m, 6, 6]
m = Array[a, {15, 15}];
scrollMatrix[m, 6, 6]
Bob Hanlon
---- Bob Hanlon <hanlonr at cox.net> wrote:
=============
scrollMatrix[m_?MatrixQ, rows_Integer, columns_Integer] :=
Module[{
nC = Min[columns, Length[m[[1]]]],
nR = Min[rows, Length[m]]},
Manipulate[
Grid[
Drop[m[[1 ;; r + nR - 2]], 2 ;; r - 1]
[[All, {1, Sequence @@ Range[c, c + nC - 2]}]],
Dividers -> {{False, True}, {False, True}}],
{r, 2, Length[m] - nR + 2, 1},
{c, 2, Length[m[[1]]] - nC + 2, 1}]]
m = Array[a, {15, 10}];
scrollMatrix[m, 10, 5]
Bob Hanlon
---- Thomas Melehan <tpmelehan at me.com> wrote:
=============
Folks: I often generate a 2D matrix that I would love to be able to view in Mathematica as one does in say Excel, by freezing the window at a certain column and scrolling thru the rest of the columns to the right of the frozen column. I can take the expression and dump it into Excel but it is somewhat time consuming. Does anyone know how to directly achieve this in Mathematica, by say using two panels?