MathGroup Archive 1990

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

Search the Archive

Re:Need help with creating a List

  • To: mathgroup at yoda.ncsa.uiuc.edu (Mathematica Mailing List)
  • Subject: Re:Need help with creating a List
  • From: uunet!kinghorn.chem.WSU.EDU!don (Don Kinghorn)
  • Date: Fri, 24 Aug 90 10:40:23 PDT

Begin recieved message:
************************************************************************************
. . . 

I am having some trouble with creating a list for plotting with
ListPlot. As I understand it, what is needed is a list of lists, where
each element of the main list is a list of two values, the x and y
positions to be plotted. In my case, the x values are just a set of
evenly spaced values, while the y values are the difference between some
data I have and a functional form for the data. What I have is:

func[x_] = "some long function"

The data is in a list called "data"

diff[x_] := data[[x]] - func[.05x]

difftable = Table[ {.05i, diff[i]}, {i, Length[data]} ]

My problem is the output of difftable. It looks like:

{{.05, {value1}}, {.01, {value2}}, ....}

What it needs to be for ListPlot to work (I think) is:

{{.05, value1}, {.01, value2}, ....}

I tried to make a test file with a simple func[x_] and just put in some
datapoints, and there it did work. So I'm confused as to when and why
mathematica is giving me {{xval1,yval1},{xval2,yval2}, ..} in one case
and {{xval1,{yval1}}, {xval2,{yval2}}, ..} in the other case.

Any ideas or suggestions?

--Avi Feldblum
ayf at pruxk.att.com   or  avi_feldblum at att.com

***********************************************************************************
Look at your y data. I suspect that its in the form of a list of lists ( an nx1 matrix) 

and as a result your function diff is returning a vector. Try applying Flatten[]
to your y data to put it in the form {y1,y2,y3, . . .}. This should give the result
you want.

Example:
In[1]:= data=Transpose[{{1,2,3,4}}]

Out[1]= {{1}, {2}, {3}, {4}}

In[2]:= fcn[x_] := x-1/2

In[3]:= dif[x_] := data[[x]]-fcn[.05x]

In[4]:= Table[{.05i,dif[i]},{i,Length[data]}]

Out[4]= {{0.05, {1.45}}, {0.1, {2.4}}, {0.15, {3.35}}, {0.2, {4.3}}}

In[5]:= data = Flatten[data]

Out[5]= {1, 2, 3, 4}

In[6]:= Table[{.05i,dif[i]},{i,Length[data]}]

Out[6]= {{0.05, 1.45}, {0.1, 2.4}, {0.15, 3.35}, {0.2, 4.3}}

I hope this helps. (this is only one of many possible solutions)

Don Kinghorn




  • Prev by Date: Re: Possible Collect bug
  • Next by Date: Mathematica Graphics Competition
  • Previous by thread: Need help with creating a List
  • Next by thread: Mathematica Graphics Competition