Converting 3D data to 2D
    2 views (last 30 days)
  
       Show older comments
    
I have a 50x4 matrix with the columns being x, y, z, and a value. I want to average each x,y point through the z to convert my 3D data to a 2D.
2 Comments
  Walter Roberson
      
      
 on 6 Dec 2017
				Does your data form a regular grid, perhaps 5 x 5 x 2 ?
Or is it scattered data that is not on a grid?
Accepted Answer
  Jos (10584)
      
      
 on 6 Dec 2017
        So, you want to ignore the z, and average the values for each specific combination of (x,y)?
xyzv = [1 1 1 10 ; 1 1 2 20 ; 1 2 3 30 ; 1 2 5 40 ; 2 2 4 10]  % test data
[xy,~,j] = unique(xyzv(:,[1 2]),'rows')  % unique combinations of (x,y)
xyv = [xy accumarray(j,xyzv(:,4),[size(xy,1),1],@mean)]  % ignore z, average v
More Answers (0)
See Also
Categories
				Find more on Animation in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

