Re: Is it possible to access internal variables? [CompoundExpression]
- To: mathgroup at smc.vnet.net
- Subject: [mg34807] Re: Is it possible to access internal variables? [CompoundExpression]
- From: "Carl K. Woll" <carlw at u.washington.edu>
- Date: Sat, 8 Jun 2002 05:21:13 -0400 (EDT)
- References: <adpfkv$j4f$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Arny (and others),
Concerning your original question, you can do what you want as follows:
First give Message a new definition for the case you are interested in:
In[20]:=
Unprotect[Message];
Message[FindMinimum::"regex",a__/;messageflag]:=
Module[{},
messageflag=False;
If[ValueQ[messlist],messlist={messlist,{a}},messlist={a}];
Message[FindMinimum::"regex",a];
messageflag=True;]
Protect[Message];
Now, to see the above in action, consider the example Bob Hanlon came up
with.
In[10]:=
f[x_]:=(x-3)(x-4)
In[15]:=
messageflag=True;
Clear[messlist]
FindMinimum[f[x],{x,2,1,3}]
messageflag=False;
FindMinimum::regex: Reached the point {3.5} which is outside the region
{{1., 3.}}.
FindMinimum::regex: Reached the point {3.5} which is outside the region
{{1., 3.}}.
Out[17]=
FindMinimum[f[x], {x, 2, 1, 3}]
Now, let's see if messlist has the desired information:
In[19]:=
messlist
Out[19]=
{{{3.5}, {{1., 3.}}}, {{3.5}, {{1., 3.}}}}
There you go.
Carl Woll
Physics Dept
U of Washington
In a message dated 6/1/02 6:18:58 AM, someone at somewhere.sometime writes:
>I am minimizing a function which only has real values between 1 and -1,
>most
>of the time... occasionally its range is different and unknown, (but anyway
>not far from 1 and -1). I could write a routine using Check to catch
errors
>and then expand the range over which FindMinimum is allowed to search,
>but
>since FindMinimum seems to be getting the appropriate values anyway - it
>tells me the values in its error message - I was wondering if there
weren't
>some way to get at those values and use them without bothering to write
>said routine. I was thinking of analysing 'MessageList' or '$MessageList',
>but was thinking there might be some easier way.
>
>Aren't variables within packages accessible via their long names, e.g.
>`package`private`variablename or something like that? Does anyone have
>any suggestions?
>