Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

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

Search the Archive

large lists with variable and if condition (vrs. 8.0.4)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg124687] large lists with variable and if condition (vrs. 8.0.4)
  • From: Chris <kristophs.post at web.de>
  • Date: Tue, 31 Jan 2012 05:39:17 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

Hi

I would like to construct a large list or large table with some data
and one unknown variable which I need for optimization purposes in say
a for loop. Constructing the whole list at each iteration is time
consuming and slows the optimization down.

First, I present some code that works just fine in order to get the
idea:

(*inputs)
leg = 100;
data = RandomReal[{}, leg];

(*constructing the list with the data in which g is a non-specfied
variable*)
Clear[list, list2, tab];
list = Table[(data[[i]] - data[[leg - i + 1]])/g, {i, 1, leg}];

(*specifying the function and the result*)
tab[k_] := list /. g -> k;
tab[1]

Now the following code does not work and I don't know why.

list2=
Table[If[Abs[(data[[j]]-data[[i]])/x]<1.,.75 (1.-((data[[j]]-
data[[i]])/x)^2),0.],{i,1,leg},{j,1,leg}];
mat[bw_Real]:=list/.x->bw

It seems to me, when looking at list2, that Mathematica is not
evaluating the when-part of the if-function when the if-part depends
on the unknown variable. Hence, an error message.

Constructing the list as:
mat[bw_Real]:=Table[If[Abs[(data[[j]]-data[[i]])/bw]<1.,.75 (1.-
((data[[j]]-data[[i]])/bw)^2),0.],{i,1,leg},{j,1,leg}];
is not an option because it slows things down.

Thanks for answer.



  • Prev by Date: Function Doesn't Evaluate Local Variables?
  • Next by Date: Re: Unrelated variable affects rsolve result
  • Previous by thread: Re: Function Doesn't Evaluate Local Variables?