[Date Index] [Thread Index] [Author Index]
Is a For loop always a no-no?
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