help-octave
[Top][All Lists]

 From: O. Scott Sands Subject: Re: adding vectors and matrices Date: Fri, 22 Aug 1997 12:11:01 -0400

```Ted Harding wrote:
>
> ( Re Message From: Andreas Heitmann )
> >
> > I'm using octave for some time now, but I'm still wondering if there
> > is a simple way to add a fixed column vector to a number of other
> > column vectors stored in a matrix. Currently i'm using a loop like the
> > following:
> >
> >       v=[1;2;3];
> >       for i=1:columns(x)
> >               y(:,i)=x(:,i)+v;
> >       endfor
> >
> > Is it possible to compute y without a loop statement?
>
> Hi,
>
>       y = x + v*ones(1,columns(x));
>
> will do it. I understand John Eaton plans to incorporate a syntax like
>
>       y = x .+ v
>
> for a future release which will do the same thing (and the corresponding
> thing if v is a row vector with as many elements as x has columns, i.e.
> add v to each row of x).
>
> Best wishes,

nononononononono!

Octave supports zero-one indexing (ala MATLAB) so you
can use "Tony's Trick" (see Mathworks archives)

y=x+v(:,ones(1,columns(x)));

The indexing functions done in with Tony's Trick
are much faster than the multiply operations
suggested by y=x+v*ones(1,columns(x)). Try it!

Since this issue appears periodically in the
mailing list here, maybe it should be put in
the manual?

Scott Sands

```