2013-08-20 6 views
2

J'ai une matrice Nx3 (A) les colonnes sont X, Y, Z respectivement. Je veux calculer la norme qui est sqrt (X^2 + Y^2 + Z^2) pour chaque ligne. J'ai fait une boucle for pour cela:Calcul de la norme de chaque ligne dans une matrice

for i = 1:length(A) 
Result(i) = norm(A(i,:)) 
end 

Y at-il une autre façon de le faire en évitant pour la boucle?

Merci

Répondre

7

Vous pouvez le faire comme ceci:

sqrt(sum(A.^2, 2)) 

Votre méthode renvoie un 1x3 où cela retourne un 3x1. Donc, si vous voulez, vous pouvez le transposer mais je doute que vous en ayez vraiment besoin.

+0

En fait je le veux 3x1 comme vous l'avez fait et dans ma méthode je prépare un vecteur de colonne avant la boucle for. Merci –

Questions connexes