Re: Importing (and dealing with) multiple files
- To: mathgroup at smc.vnet.net
- Subject: [mg60829] Re: Importing (and dealing with) multiple files
- From: "John Jowett" <John.Jowett at cern.ch>
- Date: Thu, 29 Sep 2005 05:43:01 -0400 (EDT)
- Organization: CERN - European Laboratory for Particle Physics
- References: <dhdbdh$8f3$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hello,
Something like this ?
First define a function that returns, say, the filename and the two
parameters theta1, theta2 from the results of analysing one data file:
stats[fn_] := Module[{rawdata,croppedcorrelation, statistics},
rawdata=Import[fn, "Table"];
croppedcorrelation = Take[rawdata, {75, 185}];
statistics = NonlinearRegress[croppedcorrelation, math_here ...];
{fn, theta1, theta2} /. statistics]
Get a list of the files, no need to know how many
dataFiles = FileNames["*.ASC", "C:\\"]
If each file represents a time point, then the order may matter, in which
case you may need to sort them somehow.
dataFiles=Sort[dataFiles, someSortingFunction ]
Then map the function over the list to return a table.
Map[stats, dataFiles]
You can adapt the details depending what you want exactly.
John Jowett
<contact at dantimatter.com> wrote in message news:dhdbdh$8f3$1 at smc.vnet.net...
> Hello all,
>
> I have experimental data that is stored in a number of files. I've
> been importing the files (as tables) into Mathematica one-by-one, and
> working on them like so:
>
> rawdata=Import["C:\\filename.ASC", "Table"];
>
> croppedcorrelation=Take[rawdata,{75,185}];
>
> statistics=NonlinearRegress[croppedcorrelation, math_here...]
>
> then painstakingly picking out the relevant statistical parameter from
> each file, collecting them all, and later plotting them. What I'd
> really like to do is import an entire directory's worth of these files
> (each file is a different time point), do the same statistical thing to
> each file, save the relevant parameters from each file in a table form
> and then plot the whole shebang.
>
> One of the problems is that I don't know ahead of time how many .ASC
> files are in the directory, so I need to set up the For loop (or
> whatever structure) to account for that. I tried using FileNames[] to
> get the list of files, assigning them to an array, then using Import[]
> on each of those array elements. It didn't work.
>
> Does anyone have any suggestions?
>
> Thanks!
> Dan
>