MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Plot in function


> 
> 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



  • Prev by Date: Re: Sum elements in a list with conditions
  • Next by Date: Re: Mathematica code for Kepler's radial velocity equation?
  • Previous by thread: Plot in function
  • Next by thread: Re: Plot in function