Re: Simple List question. HELP.

*To*: mathgroup at smc.vnet.net*Subject*: [mg39413] Re: [mg39389] Simple List question. HELP.*From*: Sseziwa Mukasa <mukasa at jeol.com>*Date*: Fri, 14 Feb 2003 03:23:08 -0500 (EST)*Sender*: owner-wri-mathgroup at wolfram.com

On Thursday, February 13, 2003, at 04:55 AM, Daniel Heneghan wrote: > > I am new to Mathematica. This is vexing. All I want to do is create a > 2-dimensional list so that I can enter x,y values and then plot the > list. I want to do this programmatically. I am having such incredible > trouble trying to accomplish this simple task. I know that there is > probably a Mathematica optimized way to do this, but I and trying to > write a little program and for now I want to stay with paradigms that I > am familiar with. Here is what I have been doing. > > Create a 2 dimensional list. > In[532] lst={{}} > Out[532]= {{}} > > Enter the first pair into the first place in the list. > In[533]:= lst[1]={{0,1}} > > Errors and beeps here, but it does seem to record the correct values. > Set::write: Tag List in {{}}[1] is Protected. > Out[533]={{0,1}} > lst[1] is not the first part of lst, it is a function with the head lst which evaluates to {{}}. The first part of lst is lst[[1]], note the double brackets. So you assigned the value to a function not lst. > Add anoter pair of values. > > In[534]:= lst=Append[lst,{{1,2}}] > Out[534]= {{},{{1,2}}} > The second pair is OK, but the first pair has been obliterated. > See above, the value of lst was not what you thought it was. Nothing was obliterated. > Add another pair. Now all subsequent entries are OK, but I still have > lost the first pair. > In[535]:= lst=Append[lst,{{2,c}}] > Out[535]= {{},{{1,2}},{{2,c}}}-- > > > What is going on? What are the mysteries of working with lists in > Mathematica. In any programming language this is simple. I can't grasp > it in Mathematica. The reason I need to do this is that for the list > plot I need the x values to start at 0 not 1. > There is no mystery just a typo. Incidentally it all your y are just x+1 then lst=Table[{i,i+1},{i,0,_}] where _ is your largest value of x is much more efficient. You can substitute whatever function you wish for y if one exists. Writing the values in a text file and using ReadList or just typing the list in explicitly (lst={{0,1},{1,2},{2,c},...}) is probably more easier and more efficient too. Regards, Ssezi