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