How to format surface data into XYZ point cloud?
38 views (last 30 days)
Show older comments
flemingtb
on 4 Jan 2019
Commented: Walter Roberson
on 12 May 2020
I have a .csv data set that is 10x22 surface data and i'd like to convert it to XYZ point cloud. What is the best way to do this in Matlab?
3 Comments
Walter Roberson
on 4 Jan 2019
Edited: Walter Roberson
on 5 Jan 2019
to confirm you want a 3d pointcloud with 220 points ?
do you have the marginal coordinates , 10 y and 22 x?
Accepted Answer
Walter Roberson
on 5 Jan 2019
vector_of_x = as appropriate
vector_of_y = as appropriate
[X, Y] = meshgrid(vector_of_x, vector_of_y);
points = [X(:), Y(:), z(:)];
ptCloud = pointcloud(points);
3 Comments
Onur Kurum
on 12 May 2020
Hi,
I need to do the exact same thing but I don't have the Image Processing Toolbox. Is there a 'vanilla' way of doing this?
Walter Roberson
on 12 May 2020
pointCloud is part of the Computer Vision Toolbox
pointCloud() is a particular data type in MATLAB. If you do not have Computer Vision, then you cannot create the datatype, so it is not clear what you want to do? If you just want an array of three columns, X, Y, Z, and you are starting from a 2D array, then use the code I posted but stop after the assignment to points
More Answers (2)
Cris LaPierre
on 4 Jan 2019
If you can successfully create a surface with your data using surf(X,Y,Z), the best way to create an X,Y,Z point cloud is to use scatter3(X,Y,Z).
4 Comments
Don jaya
on 9 Apr 2020
I create a surface from the data i have. How to get the Z value of the surface with using only random x and y cordinates
Walter Roberson
on 12 May 2020
Don jaya, could you describe what your available inputs are, and what outputs you want?
See Also
Categories
Find more on Point Cloud Processing 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!