3D coordinates vectors. Sum along one of the dimentions of resulting volume

2 次查看(过去 30 天)
Hello,
I have a 3D data in a form of 3 vectors: X, Y, Z. I want to sum the resulting volume along on of the dimentions. What is the fastest and easies way to do this?
These are long vectors (20k elements etc.), so it would be better to do this without creating temporary 3D matrix.
In other words: I have 3 vectors with coordinates of points. I would like to create a sum like on the image below - project the 3D volume to one of the walls:
Best regards, Alex
  2 个评论
John D'Errico
John D'Errico 2017-7-4
What does this question mean? You have 3 vectors, thus just lists of points?
What does that have to do with meshgrid?
What do you want when you say "sum the resulting volume along on of the dimentions." I'm sorry, but that statement has no meaning.
EXPLAIN your problem CLEARLY. Give a small example. Pictures are a good thing. If you have some data, then attach it as a .mat file, using the paper clip button.

请先登录,再进行评论。

采纳的回答

John D'Errico
John D'Errico 2017-7-4
I don't have your data, so I cannot use it. But it is simple enough to generate some simple non-uniform data.
xyz = sin(rand(10000,3)*2);
n = size(xyz,1);
H1 = plot3(xyz(:,1),xyz(:,2),xyz(:,3),'b.');
set(H1,'Markersize',.1)
hold on
box on
grid on
H2 = plot3(xyz(:,1),xyz(:,2),repmat(min(xyz(:,3)),n,1),'r.');
set(H2,'Markersize',.1)
The red dots all lie in the projection plane.
If you have vastly more data than this, then you might use smaller dots. But I'll admit that MATLAB graphics seem to lag a bit when trying to plot millions of points. With millions of points, you might also want to use tools like accumarray, to actually count the number of points that lie in any cell of the projection plane.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by