hello , can anybody tell me how to calculate l2 norm of x=[2 3 -5 3 1] using for loop and without loop, and which one is efficient and fast?

 Réponse acceptée

Adam
Adam le 12 Août 2016
n = norm( x );
does it without a loop. There is no reason to do it with a loop. Even if you don't use norm you would still vectorise is as:
n = sqrt( sum( x.^2 ) );
If you really want a loop the derivation is not difficult though. The vectorised version should certainly be faster, but you can test this yourself.

4 commentaires

g.p
g.p le 12 Août 2016
Modifié(e) : g.p le 12 Août 2016
thanks adam , but i have to perform it element-wise using for loop ,and without for loop and need to justify which is fast.
Adam
Adam le 12 Août 2016
If you have to perform it with a loop then I assume it is homework which you should be able to work out yourself from the 2nd version I gave above.
Converting this into a loop just uses the basics of Matlab:
n = sqrt( sum( x.^2 ) );
Aash
Aash le 16 Oct 2017
did u calculate it using for loops? how?
KL
KL le 16 Oct 2017
As Adam has mentioned in his answer, loop is not necessary but if it's a homework and you must use a loop, then read the documentation to know how it works and then use the for loop iterator to index through the vector.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Question posée :

g.p
le 12 Août 2016

Commenté :

KL
le 16 Oct 2017

Community Treasure Hunt

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

Start Hunting!

Translated by