Average data along z
7 ビュー (過去 30 日間)
古いコメントを表示
I have data at given xyz points (i.e. locations). For each xy pair, there are multiple z values. I'd like to average the data along the z dimension. In other words, go from 3D+Value to 2D+AveragedValueAlongZ. Is there a fast way to do this (i.e. not needing loops)? Thanks in advance.
0 件のコメント
採用された回答
Walter Roberson
2018 年 10 月 5 日
編集済み: Walter Roberson
2018 年 10 月 5 日
[uxy, ~, uidx] = unique([x(:), y(:)], 'rows');
avgv = accumarray(uidx, v(:), [], @mean);
output = [uxy, avgv];
2 件のコメント
Walter Roberson
2018 年 10 月 5 日
The above can be used for scattered points where there are not necessarily the same number of z for each x/y combination.
その他の回答 (1 件)
jonas
2018 年 10 月 5 日
mean(A,3)
2 件のコメント
Walter Roberson
2018 年 10 月 5 日
This can be useful, but does depend upon the points being gridded, with an equal number of z points for each (x,y) pair.
jonas
2018 年 10 月 5 日
Ah yes, that's how I interpret 3D to 2D, but in hindsight I agree that OP is probably looking for your solution.
参考
カテゴリ
Help Center および File Exchange で Discrete Data Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!