3D coordinates vectors. Sum along one of the dimentions of resulting volume
2 views (last 30 days)
Show older comments
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 Comments
John D'Errico
on 4 Jul 2017
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.
Accepted Answer
John D'Errico
on 4 Jul 2017
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 Comments
More Answers (0)
See Also
Categories
Find more on Surface and Mesh Plots in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!