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

18 Ansichten (letzte 30 Tage)
Aundrea Dolan
Aundrea Dolan am 8 Mär. 2016
Beantwortet: Guillaume am 8 Mär. 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!

Antworten (1)

Guillaume
Guillaume am 8 Mär. 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);

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by