Re: Importing (and dealing with) multiple files
- To: mathgroup at smc.vnet.net
- Subject: [mg60793] Re: Importing (and dealing with) multiple files
- From: Torsten Coym <torsten.coym at eas.iis.fraunhofer.de>
- Date: Thu, 29 Sep 2005 05:40:59 -0400 (EDT)
- Organization: Fraunhofer Gesellschaft (http://www.fraunhofer.de/)
- References: <dhdbdh$8f3$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Dan,
create a list of all matching file names:
files = FileNames["*ASC"]
Then take a look at Map[] or /@.
Mathematica is a much more functional than imperative programming
language. There is usually no need for For[]-loops.
filecontents = (Import[#1, "Table"] & ) /@ files;
croppedcorrelations = (Take[#1, {1, 2}] & ) /@
filecontents
statistics = NonlinearRegress[#,
(math_here)...]&/@croppedcorrelations
so long,
Torsten
contact at dantimatter.com wrote:
> 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
>