MathGroup Archive 2013

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

Search the Archive

Re: variables/objects with sequential naming?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg130183] Re: variables/objects with sequential naming?
  • From: Stefano Ugliano <northerndream at gmail.com>
  • Date: Mon, 18 Mar 2013 05:34:27 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <ki1641$5v0$1@smc.vnet.net>

Il giorno sabato 16 marzo 2013 08:14:09 UTC+1, Stefano Ugliano ha scritto:
> Dear all,
>
>
>
> the simplest way to explain what I'd like to achieve is to show you the long way I had to go, not knowing how to automate this:
>
>
>
> graph1 = Graph[cities, DeleteDuplicates@edges[[1]]];
>
> graph2 = Graph[cities, DeleteDuplicates@edges[[2]]];
>
> graph3 = Graph[cities, DeleteDuplicates@edges[[3]]];
>
> graph4 = Graph[cities, DeleteDuplicates@edges[[4]]];
>
> graph5 = Graph[cities, DeleteDuplicates@edges[[5]]];
>
> graph6 = Graph[cities, DeleteDuplicates@edges[[6]]];
>
> graph7 = Graph[cities, DeleteDuplicates@edges[[7]]];
>
> ...
>
>
>
> and I think you got the point (no need to paste the whole list!)
>
>
>
> I will of course have the same problem on the way around, when I'll want to obtain a table of values for all my graph1, graph2...
>
>
>
> I used ToString to produce output files with sequential names, but this... no clue! (googling didn't help either)
>
>
>
> Could anywone help?
>
> Thank you
>
> - Stefano


Dear All,

I have recevied some answer to my question that I am posting here. Thank you all, as from each of them I found out some interesting command I did not 
know much about.

First of all, the "winning" answer in term of doing exactly what i wanted in the most elegant and simple way one could think of was:

     graph = Graph[cities, DeleteDuplicates[#]]& /@ edges

This gives no "graph1, graph2" etc. but working from the graph list one takes graph[[1]] and so on and it's the same, if not better since Mathematica is so good at handling lists

----------

This other answer was interesting as it allows to obtain items with actually the required name:

     set [ name_String, val_ ] := ( Clear[name]; Set [ Evaluate [ Symbol [
name ]] , val ] );
     setGraph [ k_Integer ] :=
  set [ "graph" <> ToString [k], Graph [ cities,
DeleteDuplicates@edges [ [ 1 ] ] ] ];


although I guess the last [[1]] should be [[k]]: problem is, this doesn't work in  building the graphs... but the general scheme is quite precious for other cases, I just hope that calling back a variable in the format "name_number" is just as easy, I'm starting to think that lists are *the* solution to this kind of problems..

This one proposed by Waclaw instead works on all the line:

     Do[
         Set@@{ToExpression["graph"<>ToString@i], Graph[cities,DeleteDuplicates@edges[[i]]]},{i, imax}]


While I still have to try this one

     Do[
         graph[i] = Graph[cities, DeleteDuplicates@edges[[i]]],{i, imax}]


In any case thanks to all of you who sent me an answer, they were all very appreciated and helpful.

- Stefano



  • Prev by Date: Re: variables/objects with sequential naming?
  • Next by Date: Smoothhistogram and log-log scaling; Fitting of a power-law
  • Previous by thread: Re: variables/objects with sequential naming?
  • Next by thread: Framelabel without drawing frame