help-octave
[Top][All Lists]

## Re: Cross Product Results

 From: Mario Storti Subject: Re: Cross Product Results Date: Fri, 19 Sep 1997 19:28:11 -0300

```Sometimes it is useful to perform the  cross product on a large number
of pair of vectors. So a and b may be matrices of N x 3 and:

c = cross(a,b)

is N x 3 matrix where each row is the dot product of the corresponding
rows in a and b. The code may be "vectorized" in the row dimension:

> c(:,1)=a(:,2).*b(:,3)-a(:,3).*b(:,2);
> c(:,2)=a(:,3).*b(:,1)-a(:,1).*b(:,3);
> c(:,3)=a(:,1).*b(:,2)-a(:,2).*b(:,1);

This   is  useful  when  working  with  finite   element   meshes,  3D
representation of surfaces,  etc... For instance, if  a and  b are the
corresponding sides of a large  set of triangles,  then c is normal to
the triangles and |c| is the area of the triangles.

We  could  check  the  dimensions of the  arrays   since there are  no
possible confusion:

> if a and b are 3x1
>      compute cross product as column vectors
> else if a and b are Nx3
>      compute cross product as row vectors
> elseif
>      error
> endif

Note that we can't consider a and b  of the form  3xN since then there
is an ambiguity when the matrix is 3x3.

I will write such a version and post it to octave-sources in the case
that someone else finds it useful. Send comments or suggestions.

Cheers,

Mario

%%%%%%<>%%%%%%<>%%%%%%<>%%%%%%<>%%%%%%<>%%%%%%<>%%%%%%<>%%%%%
Mario Alberto Storti               | Fax: (54)(42) 55.09.44 |
Grupo de Tecnologia Mecanica       | Tel: (54)(42) 55.91.75 |
INTEC, Guemes 3450 - 3000 Santa Fe | Home: Gob. Vera 3161   |
Argentina                          |       (54)(42) 55.00.23|