Re: Plotting a phase boundary

*To*: mathgroup at smc.vnet.net*Subject*: [mg61327] Re: [mg61283] Plotting a phase boundary*From*: "David Annetts" <davidannetts at aapt.net.au>*Date*: Fri, 14 Oct 2005 22:23:52 -0400 (EDT)*Sender*: owner-wri-mathgroup at wolfram.com

Hi James, > I have a series of Table objects, each consisting of a 100 x > 100 matrix divided into a region of 1's and 0's. For an > example file see http://users.bigpond.net.au/jdstokes/DATA.CSV > > Then try > > pts = Import["DATA.CSV"]; > ListContourPlot[pts]; > (Actually, this matrix should be inverted) > > My goal is to find the boundary between the 1's and 0's, or > an approxmimation to it, and plot all of the boundaries (for > each of the > matrices) together in a 3-dimensional surface plot so as to > obtain a surface. The surface will then correspond to the > "phase transition" > between, say 0 (inside the surface) and 1 (outside the > surface). I think I might be asking too much. I would like to > know if it is possible for a relatively inexperienced user of > Mathematica to achieve this. A very naive approach might be to use an edge detector to look for the boundary. The following is adapted from the online help (Section 3.8.5). pts = Import["c:/Tmpfiles/Downloads/Data.csv"]; pplt = ListPlot3D[pts]; tmp = ListConvolve[{{1, 1, 1}, {1, -8, 1}, {1, 1 , 1}}, pts]; tplt = ListPlot3D[tmp]; Regards, Dave.