Re: Is a For loop always a no-no?
- To: mathgroup at smc.vnet.net
- Subject: [mg50333] Re: Is a For loop always a no-no?
- From: Bill Rowe <readnewsciv at earthlink.net>
- Date: Fri, 27 Aug 2004 02:57:56 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
On 8/26/04 at 6:51 AM, rob at pio-vere.com (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]; From this last, it looks to me like you are looking for the difference between subsequent elements of the list. If so, ListConvolve[{1,-1},list] will do what you want, i.e., y = Table[Subscript[x, n], {n, 5}]; Drop[RotateLeft[y] - y, -1] == ListConvolve[{1, -1}, y] True So, for a matrix where you want to do this for each row simply Map ListConvolve to each row, i.e., ListConvolve[{1,-1},#]&/@y where y is the matrix -- To reply via email subtract one hundred and four