Re: How to test if list of arguments are numeric
- To: mathgroup at smc.vnet.net
- Subject: [mg89521] Re: How to test if list of arguments are numeric
- From: Albert Retey <awnl at arcor.net>
- Date: Wed, 11 Jun 2008 05:15:41 -0400 (EDT)
- References: <g2nu84$ej1$1@smc.vnet.net>
Michael A. Gilchrist wrote:
> Hi all,
>
> I'm trying to use a function with NMinimize and running into problems with
> holding off its evaluation until NMinimize passes real values. Essentially, I
> have something like this
>
> TestFunction[avec_]:=Module[{},
> .
> .
> .
> ]
>
> Where avec should be a list of real numbers. I know that to ensure avec is a
> list I use avec_?ListQ, but I need to ensure that avec is a list of real
> numbers (not the symbols that NMinimizes passes).
>
> Unfortunately, I have no idea what the correct syntax is. Could someone
> please clue me in on this?
These two should work:
ClearAll[avec];
avec[x_?(VectorQ[#,NumericQ]&)]:=Row[{"Match: ",x}]
ClearAll[avec];
avec[x:{__?NumericQ}]:=Row[{"Match: ",x}]
These were my testcases:
avec[1]
avec[a]
avec[{{}, a}]
avec[{1, 2, d}]
avec[{1, 2, 3, \[Pi]}]
be sure to ClearAll before redefining, otherwise the old definitions
will still be active!
hth,
albert