How to calculate normal values of each xyz co-ordinates and ouput as a column vector for each co-ordinate?

7 vues (au cours des 30 derniers jours)
Hi,
I have xyz point cloud data as a 40000x3 with each row containing a single point with x y and z data in the columns.
I am trying to calculate the normal value for each point to the origin, this works for an individual row, for example:
normd = norm(data(1,:));
However I need to do it for all the rows, i used this code but it combines it into all one normal value.
normd = norm(data(1:40000,:));
Ideally I need the normal value of each row (coordinate), in a column vector, for the range from 1 to 40000.
Thanks for any help.
Joe

Réponse acceptée

Matt J
Matt J le 23 Fév 2018
Modifié(e) : Matt J le 23 Fév 2018
normd= sqrt( sum(data.^2,2) );
  3 commentaires
Matt J
Matt J le 23 Fév 2018
Modifié(e) : Matt J le 23 Fév 2018
Not sure how it works? Isn't it virtually the definition of the norm you are trying to compute?
Joe Pashley
Joe Pashley le 27 Fév 2018
Looked at the code again and followed it step by step and understand it now, thanks.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by