Converting 3D data to 2D
    2 次查看(过去 30 天)
  
       显示 更早的评论
    
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 个评论
  Walter Roberson
      
      
 2017-12-6
				Does your data form a regular grid, perhaps 5 x 5 x 2 ?
Or is it scattered data that is not on a grid?
采纳的回答
  Jos (10584)
      
      
 2017-12-6
        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
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


