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?

 채택된 답변

Adam
Adam 2016년 8월 12일

1 개 추천

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

g.p
g.p 2016년 8월 12일
편집: g.p 2016년 8월 12일
thanks adam , but i have to perform it element-wise using for loop ,and without for loop and need to justify which is fast.
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 2017년 10월 16일
did u calculate it using for loops? how?
KL
KL 2017년 10월 16일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

g.p
2016년 8월 12일

댓글:

KL
2017년 10월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by