MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

On ~= (simulating a C structure) in Mathematica....

  • To: mathgroup at smc.vnet.net
  • Subject: [mg103922] On ~= (simulating a C structure) in Mathematica....
  • From: Jason Ledbetter <jasonbrent at gmail.com>
  • Date: Tue, 13 Oct 2009 07:17:21 -0400 (EDT)

Folk,
I'm importing data into mathematica from a web service using some perl
middleware (the lack of XPath functionality in mathematica coupled with my
very junior comprehension of mathematica patterns forced this for now).

The perl middleware returns datasets by "layers" that I'm (somewhat
successfully) manipulating within mathematica.

For each dataset, I end up with a few large pieces of data that are roughly
analogous to "layers".

Right now, I am mentally keeping track of the variable names for each layer
but I would like to expand this to be more programatic so I can work with
comparisons between datasets (which would each contain a number of
"layers").

Initially I was just naming variables like...

datasetId=3728;
layer1ImportString = "!importprogram..."<> ToString[datasetId]";
layer1=Import[layer1ImportString....];
....

This would let me have a single identifiable dataset with named layers.

I've been pondering abusing DownValues to store this data at a known-to-me
"index".

e.g.,

dataset1[0]=3278;
dataset1[1]=Import[layer1ImportString...];

I believe this approach will work, but what I'm trying to do now is
encapsulate all of the initial dataset/layer importing into one function
which leads to my question.

How can I do:

dataset1=importById[3728];

and get dataset1[0], dataset1[1], etc populated?

For example:

In[262]:= test[data_] := Module[{}, {data[0] = "zero", data[1] = "one"}];
bar = test[foo];
DownValues[bar]

Out[262]= {}


I'm expecting... {HoldPattern[bar[0]]:> zero...}


Thoughts? I realize I'm probably doing this The Hard Way and welcome other
alternatives... my end goal is to be able to have a single variable that
describes the entire dataset/individually-imported-layers that can be passed
to other functions so I can more readily work with multiple datasets
concurrently.


Thanks,


-jbl



  • Prev by Date: Re: Convert Graphics3D to Graphics2D. Is it possible?
  • Next by Date: Re: For interest: oil prices with FX for comparison
  • Previous by thread: Re: Error code: 480
  • Next by thread: Re: On ~= (simulating a C structure) in Mathematica....