I have generated noise with RandomVariate and am trying to add it to the y values only of a list of {x, y}-coordinates. I'm looking for a general way to add the noise (one-dimensional list) to the y-values of my list (data) such that given:
noise = {α, β, γ};
data = {{1, a}, {2, b}, {3, c}};
the result is
{{1, a + α}, {2, b + β}, {3, c + γ}}
I could do this with Table in what feels like a really inelegant process, but is there a way to do it in a simple algebraic command with only Take? For example, I know I can take the second column of data only with data[[All,2]], but the resulting list will include only the y values. I would prefer not to have to split up and recombine the lists.
Edit
To clarify, I would really like to be able to do this without defining additional variables.
data + Transpose[PadLeft[{noise}, {2, Automatic}]]? – J. M.'s missing motivation Aug 01 '16 at 16:54data[[;; , 2]] += noise; data. – Kuba Aug 01 '16 at 17:08FullFormof an answer to list-manipulation topics ;) – Kuba Aug 01 '16 at 17:24