Re: Is a For loop always a no-no?
- To: mathgroup at smc.vnet.net
- Subject: [mg50330] Re: Is a For loop always a no-no?
- From: "Kezhao Zhang" <kezhao.zhang at gmail.com>
- Date: Fri, 27 Aug 2004 02:57:53 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
One way to do it without the For loop:
yd=ListCorrelate[{-1,1},#]&/@yd;
K. Z.
1.156 wrote:
> I realize that many times some form of Mathematica built in array
function will
> do the needed job. Here I have a matrix containing individual data
> traces in rows y[[i]]. I want to make matrix containing the
corresponding
> derivative signals in rows yd[[i]]. I get this done using the
following
> For loop. Matrix yd has been initialized (it wouldn't work with out
it).
>
> For[i = 1, i < n, i++, yd[[i]] = Drop[RotateLeft[y[[i]]] - y[[i]],
-1]];
>
> I tried the obvious (to me):
> yd = Drop[RotateLeft[y] -y, -1];
>
> But I get garbage. It seems the whole matrix has been flattened to a
> single list and the whole list is rotated --instead of doing it row
> by row as I need.
>
> Wizzards all: is there some slick way to do this without the For
loop?
> If so, it's probably faster and sure would look better in the code.
> Suggestions appreciated as usual.
>
> Rob