Creating average of y-values for similar x-values in dataset

15 visualizaciones (últimos 30 días)
Aundrea Dolan
Aundrea Dolan el 8 de Mzo. de 2016
Respondida: Guillaume el 8 de Mzo. de 2016
Hello,
I have a data set of x,y values where x identifies a line value and y identified extracted values from points along that line (from a GIS raster layer). I am new to Matlab and am struggling to create a working for loop that allows me to calculate the averages of the y point values for each x line value. (So, for line 1- calculate the average of all points along that line, for over 20,000 lines).
Does anyone know how to get this started? My attempts so far have failed, this is my most recent:
for y = 1:col
if x == 1
output = mean(y);
end
end
But this is not working correctly. Any ideas?
Thank you!

Respuestas (1)

Guillaume
Guillaume el 8 de Mzo. de 2016
I think you need to spend more time learning matlab as your attempt does not even qualify as a half attempt. There's a complete disconnect between what you're asking and what your loop is doing.
Anyway, you don't need a loop for that, just two functions: unique and accumarray:
[lines, ~, subs] = unique(x);
ymeanperline = accumarray(subs, y, [], @mean);

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by