[Date Index]
[Thread Index]
[Author Index]
Re: Threading over matrices
*To*: mathgroup at smc.vnet.net
*Subject*: [mg90768] Re: Threading over matrices
*From*: "David Park" <djmpark at comcast.net>
*Date*: Wed, 23 Jul 2008 05:59:21 -0400 (EDT)
*References*: <g64487$djo$1@smc.vnet.net>
x = Table[Random[], {3}, {4}];
y = Table[Random[], {3}, {4}];
a = 0.5;
You need to get the Listable Attribute for your functions. Less is
not Listable, so let's define our own Less that is.
SetAttributes[MyLess, Listable]
MyLess[p_, q_] := p < q
x~MyLess~y
And for the other two functions:
SetAttributes[f1, Listable]
f1[x_, y_] := If[x < y, 1/x, x - y]
x~f1~y
SetAttributes[f2, Listable]
f2[x_, y_] := Piecewise[{{1, x == a}, {x^2, x > a}}, x y^2]
x~f2~y
--
David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/
<"Robert <"@frank-exchange-of-views.oucs.ox.ac.uk> wrote in message
news:g64487$djo$1 at smc.vnet.net...
> How can I get evaluations to thread over matrices with
> conditional functions?
> Here's examples that show the behaviour that's really
> frustrating me.
> Create a couple of matrices:
>
> x = Table[Random[],{3},{4}];
> y = Table[Random[],{3},{4}];
> a=0.5;
>
> (These are example values I would like the following
> to apply to lists of any dimension.)
> When you add them they create a result with the same
> dimensions where each element corresponds to the
> input elements
>
> x + a y
>
> And some functions do similar
>
> Cos[x] + Sin[a y]
>
> But some don't, e.g.
>
> x > y
> x > a
>
> I would have liked those to produce a matrix of corresponding
> True and False results, and then something like:
>
> If[x > y, 1/x, x - y]
> Piecewise[{{1,x==a},{x^2,x>a}},x y^2]
>
> to produce a matrix of results corresponding to each element.
>
> They don't - I haven't managed to find out why they don't or
> more usefully how to do what I would like them to do.
>
> I have searched Help on all the likely commands (I think: Map,
> Thread, Apply, Distribute, ...) and this archive, where there
> are similar enquiries but none that match. Perhaps I'm looking
> in the wrong place - I expect there's someone who can help.
>
> Robert
>
>
Prev by Date:
**Mathematica Special Interest Group (Washington DC Area)**
Next by Date:
**Can't integrate sqrt(a+b*cos(t)+c*cos(2t))**
Previous by thread:
**Re: Threading over matrices**
Next by thread:
**Re: Threading over matrices**
| |