square of a vector

on 31 Oct 2012

Honglei Chen (view profile)

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 (view profile)

on 31 Oct 2012
Edited by Honglei Chen

Honglei Chen (view profile)

on 31 Oct 2012

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

Berbia

Berbia (view profile)

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

Honglei Chen (view profile)

on 31 Oct 2012

I'd say

```temp = B-C;
temp'*temp
```
Matt J

Matt J (view profile)

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

Matt J (view profile)

on 31 Oct 2012

` A=norm(B-C)^2;`

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