Manipulate for differences tables. Can I call as function?
- To: mathgroup at smc.vnet.net
- Subject: [mg121645] Manipulate for differences tables. Can I call as function?
- From: "Christopher O. Young" <cy56 at comcast.net>
- Date: Sat, 24 Sep 2011 22:30:56 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
I'd like to be able to use this Manipulate expression, which works fine on
its own, as a function that I can pass a list of integers to. The following
isn't allowed. Any hints on how to go about doing this?
diffTablePlot[intList_] =
Manipulate[
Column[{
Column[
Table[
Grid[
{Differences[list, i]},
ItemSize -> {w, h}
],
{i, 0, n}
],
Alignment -> alignment
], (* Column *)
ListLinePlot[
Table[
Table[
With[
{offset = If[alignment == "Left", 0, j 0.5]},
{startX + offset + (i - 1), Differences[list, j][[i]] }
],
{i, 1, Length[Differences[list, j]]}
],
{j, 0, n}
],
PlotMarkers -> Graphics[{PointSize[Medium], Point[{0, 0}]}],
PlotStyle -> Table[Hue[0.85 k/n], {k, 0, n}],
PlotRange -> {{startX, startX + Length[list] - 1}, {Min[list],
Max[list]}},
GridLines -> {Range[startX, startX + Length[list]],
Range[Min[list], Max[list]]},
AspectRatio -> (Max[list] - Min[list])/Length[list],
Frame -> True,
GridLinesStyle -> Directive[Gray, Dotted]
] (* Column *)
}],(* Column *)
"Finite difference table for a list of numbers",
{list, InputField},
{alignment, {"Left", "Center"}},
{{startX, 1, "Start x"}, -10, 10, 1},
{{n, 4}, 1, Length[list] - 1, 1}, (*
Number of rows of differences *)
{{w, 3}, 0, 4}, (*
width and height of each item *)
{{h, 1}, 0, 4},
With[{userList = intList},
Initialization :> (list =
If[userList != "", userList, Table[2^k, {k, -4, 4}] ])
]
] (* Manipulate *)