Assuming a is bigger than b, then

      a.viewPart(0, b.size()).assign(b, Functions.PLUS)

Should do the deed.  If b is bigger, you can use it as the target or
allocate a new vector of the size you need.

On Thu, Nov 29, 2012 at 2:55 PM, Stefan Kreuzer <stefankreuze...@aol.de>wrote:

> The vectors don't have the same cardinality, so vector1.plus(vector2) does
> not work.
> Is there a way to resize a given vector? Sorry I am a complette
> Mahout-noob.
>
>
>
> -----Ursprüngliche Mitteilung-----
> Von: Ted Dunning <ted.dunn...@gmail.com>
> An: user <user@mahout.apache.org>
> Verschickt: Do, 29 Nov 2012 11:45 pm
> Betreff: Re: How to concatenate Vectors?
>
>
> The most efficient way is probably to just add them.
>
> You can also use assign with a max function.  Or you can write a special
> function if you want the left vector or the right one to have preference.
>
>       Vector a, b;
>       // method 1
>       a.plus(b);
>       // method 2
>       a.assign(b, Functions.MAX);
>       // method 3
>       a.assign(b, new DoubleDoubleFunction() {
>           @Override
>           public double apply(double arg1, double arg2) {
>               return arg1 > 0 ? arg1 : arg2;
>           }
>       });
>
> The assignment approaches have the problem that they not operate in a
> sparse fashion except for a few known functions.  It would be very easy to
> extend the DoubleDoubleFunction so that there is a
> isSparseFriendly() method or to introduce a new
> SparseFriendlyDoubleDoubleFunction class to determine whether it would be
> safe to do the iteration in a sparse fashion.  The last example would
> become:
>
>       a.assign(b, new SparseFriendlyDoubleDoubleFunction() {
>           @Override
>           public double apply(double arg1, double arg2) {
>               return arg2 != 0 ? arg2 : arg1;
>           }
>       });
>
> MAX is not a sparse friendly function, of course since max(x,0) != 0 in
> general.
>
> On Thu, Nov 29, 2012 at 2:24 PM, Stefan Kreuzer <stefankreuze...@aol.de
> >wrote:
>
> > Hello,
> >
> > I dont understand what is the best way to concatenate (or merge) two
> > sparse vectors.
> > I.e. given two sparse vectors
> > {8:0.027,38:0.037,67:0.027}
> > and
> > {86:0.032,87:01042}
> > I need to build a new vector that contains all the values of the two:
> > {8:0.027,38:0.037,67:0.027,86:0.032,87:01042}
> >
> > What is the best / most efficient way to achieve this in Mahout?
> >
> > Best Regards
> > Stefan
> >
>
>
>  work
>

Reply via email to