Re: Plot in function
- To: mathgroup at smc.vnet.net
- Subject: [mg128435] Re: Plot in function
- From: Daniel <dosadchy at its.jnj.com>
- Date: Fri, 19 Oct 2012 02:42:43 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
> > I would like to make a function that plots a variable > over a parameter range. I tried: > > test[f_, sol_] := > Table[Plot[ > f /. DeleteCases[sol, i], {i[[1]], 0.9 i[[2]], 1.1 > 1.1 i[[2]]}], {i, > sol}] > > But this gives the error: > > test[x^2 + y^2, {x -> 0, y -> 0}] > > During evaluation of In[108]:= Plot::write: Tag Part > in i[[1]] is Protected. >> > > I see that i cannot define a part in the variable of > a plotfunction, but also if I first assign i[[1]] to > a variable, I get a problem with the bounds. > > test[f_, sol_] := > Table[a = i[[1]]; > Plot[f /. DeleteCases[sol, i], {a, 0.9 i[[2]], 1.1 > .1 i[[2]]}], {i, > sol}] > > I don't know of a good solution. Thanks in advance. > First, the expression {i[[1]], 0.9 i[[2]], 1.1 i[[2]]} is not good in your case as both limits evaluate to 0. Other that this, you're missing Evaluate[]: test[f_, sol_] := Table[Plot[f /. DeleteCases[sol, i], {i[[1]], i[[2]] - 1, i[[2]] + 1}//Evaluate], {i, sol}] test[x^2 + y^2, {x -> 0, y -> 0}] - draws 2 plots