Re: how to drop ContextPath when printing from a package?
- To: mathgroup at smc.vnet.net
- Subject: [mg116424] Re: how to drop ContextPath when printing from a package?
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Mon, 14 Feb 2011 04:28:34 -0500 (EST)
Better, I think, to give the package user control of what variable is used in the result: myFit[data_, var_] := Module[{f}, f = FindFit[data, a + b var, {a, b}, var]; a + b var /. f] myFit[{{1, 2.2}, {2, 3.8}, {3, 6}, {4, 8.4}}, x] -0.1 + 2.08 x Bobby On Sun, 13 Feb 2011 02:05:30 -0600, Sjoerd C. de Vries <sjoerd.c.devries at gmail.com> wrote: > Hi Ted, > > I assume your variable is local to a package that contains the > variable. Apart from the package context I further assume that your > module basically does something like: > > myFit[data_] := > Module[{x, f}, > f = FindFit[data, a + b x, {a, b}, x]; > a + b x /. f > ] > > which yields something like: > > In[276]:= myFit[{{1, 2.2}, {2, 3.8}, {3, 6}, {4, 8.4}}] > > Out[276]= -0.1 + 2.08 x$142961 > > In my opinion, it is never a good idea to return a local variable. One > solution is, of course, to use a different variable in your module, so > not x, or not to return the fit in terms of x. If returning a model in > terms of x is necessary another solution might be > > myFit[data_] := > Module[{x, f}, > f = FindFit[data, a + b x, {a, b}, x]; > a + b Symbol["x"] /. f > ] > > In[278]:= myFit[{{1, 2.2}, {2, 3.8}, {3, 6}, {4, 8.4}}] > > Out[278]= -0.1 + 2.08 x > > Cheers -- Sjoerd > > > > > > On Feb 11, 10:14 am, Ted Sariyski <tsari... at craft-tech.com> wrote: >> Hi, >> I have a module, which make use of FindFit[data,model,par,x] and >> returns the model and a plot of data and the fit curve. I want to use >> the model as a PlotLabel but >> instead of >> >> y=1.19623+1048.91 x^0.733809 >> >> I get >> >> y=1.19623+1048.91 initData`Private`x$^0.733809 >> >> How can I get rid of the ContextPath initData`Private`? >> Thanks in advance, >> --Ted > > -- DrMajorBob at yahoo.com