RE: plotting multidimensional arrays

*To*: mathgroup at smc.vnet.net*Subject*: [mg69587] RE: [mg69547] plotting multidimensional arrays*From*: "David Annetts" <davidannetts at aapt.net.au>*Date*: Sat, 16 Sep 2006 03:50:31 -0400 (EDT)

Hi Mickey, > I have a list of numbers, > cc(1,2)=20 > cc(1,3)=45 > > and so on. I would like to plot it as a 3 dimensional plot, > with the index as x and y and the value as the z value but I > am having trouble doing that. Here is what I was trying. I > create the array first, > > cc=Table[0,{i,500},{j,500}]; You are creating an 500 x 500 array filled with zeros. > This works fine. Then I assign the values for the elements. > > cc[[1]][[2]]=20; This will return the 2nd element in the first row. You mean cc[[1, 2]] = 20; > But here I get an error. Yes. Look at Part[] in the online help. > What am I doing wrong? At the very least, assuming that you can write C(++) like code and expect it to work .... You say you have a list of numbers. Where? On paper? In a file on your disc? Assuming it's the latter, we can read them directly into Mathematica. idat = Import["c:/Tmpfiles/Surface.dat", "CSV"]; idat = ToExpression[#] & /@ idat; And plot them as a surface (after loading the proper package) Needs["Graphics`"] ListSurfacePlot3D[idat]; Or as discrete points ... rdat = Partition[Flatten@idat, 3]; ScatterPlot3D[rdat]; It depends on how you read your data from the file on disc, and what exactly you want to do with them. How about looking at the help for Import[] as well as ListPlot3D & ListSurfacePlot3D. Try the examples. Look at the start of the sample data to see the required format for the data. Regards, Dave.