Asked by Berbia
on 31 Oct 2012

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??

*No products are associated with this question.*

Answer by Honglei Chen
on 31 Oct 2012

Edited by Honglei Chen
on 31 Oct 2012

Accepted answer

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)

Show 3 older comments

Berbia
on 31 Oct 2012

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
on 31 Oct 2012

I'd say

temp = B-C; temp'*temp

Matt J
on 31 Oct 2012

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);

Related Content

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments