square of a vector

I have to calculate a square of vector which should results a scalar value. i.e) A=(B-C)^2 B and C are vectors and I need A as a scalar. How can I implement this in matlab??

 채택된 답변

Honglei Chen
Honglei Chen 2012년 10월 31일
편집: Honglei Chen 2012년 10월 31일

0 개 추천

My guess is you need an inner product, i.e. A = |B-C|^2, you can do it many different ways, one way is
B = ones(3,1);
C = ones(3,1);
A = (B-C)'*(B-C)

댓글 수: 6

Berbia
Berbia 2012년 10월 31일
I got it...Can I use dot(B,C)? Is both are same?
Honglei Chen
Honglei Chen 2012년 10월 31일
편집: Honglei Chen 2012년 10월 31일
yes they are the same, but you should use
dot(B-C,B-C)
Matt J
Matt J 2012년 10월 31일
No. You could do dot(B-C,B-C) or, more efficiently
tmp=B-C;
A=dot(tmp,tmp);
The DOT command is relatively slow, though, in case that matters.
Berbia
Berbia 2012년 10월 31일
Thanks a lot...I have to do this operation repeatedly in loop. which is more efficient, whether tmp=B-C; dot(tmp,tmp); or norm(B-C)^2?
Honglei Chen
Honglei Chen 2012년 10월 31일
I'd say
temp = B-C;
temp'*temp
Matt J
Matt J 2012년 10월 31일
편집: Matt J 2012년 10월 31일
You should think about whether the loop can be avoided altogether, since this sounds like a very vectorizable operation. If B and C are matrices and you want the dot product along columns, for example
temp=B-C;
result = sum(temp.^2,1);

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

추가 답변 (1개)

Matt J
Matt J 2012년 10월 31일

1 개 추천

A=norm(B-C)^2;

카테고리

도움말 센터File Exchange에서 MATLAB Coder에 대해 자세히 알아보기

태그

질문:

2012년 10월 31일

Community Treasure Hunt

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

Start Hunting!

Translated by