Calculating average and saving to a new file
2 次查看(过去 30 天)
显示 更早的评论
I have few points between 200 to 500 which are unevenly spaced.
I have to make a file with x and y as average of all ponts in interval of 10 (if there is no point in that interval it will give 0)
i.e for 200 to 500... i will have 1 point for 200 to 210 (which will b average of all points in this interval) then 2nd point for 211 to 220... and so on..
like if my file is:
202 10000
205 12000
211 30000 .... and so on
so new x1 = average of(202,205) and new y1 = average(10000,12000) bcoz only those 2 points of the file come under 1st interval of 10.
plz help me
回答(2 个)
Patrik Ek
2014-8-22
编辑:Patrik Ek
2014-8-22
I am not exactly sure what you want to do, but the guess is that you have to set of points x and y. Then calculate average with mean and save the data to .mat file with save.
xm = mean(x); % mean of x
ym = mean(y); % mean of y
xym = join(xm,ym); % Create a struct to save the data to hold down the number of variables in the file
save('meanValues','xym'); % Save the data
Then to load the data use load('meanValues') and if you want to split up the struct again use split(xym).
Guillaume
2014-8-22
If I understood correctly what you want to do:
points = [4 20;2 24;6 33;11 22;17 222; 29 344];
[~, interval] = histc(points(:, 1), 1:10:101); %to find which interval the points belong to
xmeans = accumarray(interval, v(:, 1), [], @mean); %to average x according to interval
ymeans = accumarray(interval, v(:, 2), [], @mean); %to average y according to interval
meanpoints = [xmeans, ymeans];
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!