[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Applying function to vector by index
From: |
Paul Kienzle |
Subject: |
Re: Applying function to vector by index |
Date: |
Mon, 9 Dec 2002 13:28:12 -0500 |
User-agent: |
Mutt/1.2.5.1i |
That's because S.^2 implicitly expands S to a full matrix 8-(
Anyone care to patch it?
Meanwhile, how about the following:
function [count, mean, diff] = spstats(v,j)
i = [1:length(v)];
S = sparse(i,j,v);
count = spsum(sparse(i,j,1));
mean = spsum(S) ./ count;
diff = S - sparse(i,j,mean(j));
var = spsum ( diff .* diff ) ./ (count - 1);
end
Paul Kienzle
address@hidden
On Mon, Dec 09, 2002 at 05:01:47PM -0000, Iago Mosqueira wrote:
> Thanks, it works fine. I was doing just this for estimating the mean, but I
> was somehow getting into memory problems (a 65000x1 vector, turning into a
> sparse matrix with 15 datapoints). It's fine now. Yes, some general way
> 'sapply' style would be nice...
>
> Thanks,
>
>
> iago
>
>
> ----- Original Message -----
> From: "Paul Kienzle" <address@hidden>
> To: "Iago Mosqueira" <address@hidden>
> Cc: "octave-help" <address@hidden>
> Sent: 09 December 2002 16:56
> Subject: Re: Applying function to vector by index
>
>
> > Iago,
> >
> > Sparse matrices are a likely candidate here. Split your data with
> > one column per bin:
> >
> > n = length(d);
> > S = sparse(1:n,idx,d);
> >
> > Then the stats are:
> >
> > count = spsum(sparse(1:n,idx,1));
> > mean = spsum(S) ./ count;
> > var = spsum( (S - sparse(1:n,idx,mean(idx))).^2 ) ./ (count-1);
> >
> > Not as good as a generic split/apply operations I agree, but even
> > with split/apply performance wouldn't be much better than a loop since
> > you would still be interpreting var(x) for each bin separately.
> >
> > Paul Kienzle
> > address@hidden
> >
> > On Mon, Dec 09, 2002 at 04:22:17PM -0000, Iago Mosqueira wrote:
> > > Hi,
> > >
> > > I have a long vector classified in ten bins of different length
> according to
> > > another vector. I want to estimate the variance, or any other function,
> of
> > > the values from the first vector for each of the categories described by
> the
> > > second, without using a loop. Is there any obvious way of doing this I
> am
> > > overlooking? In R one could do
> > >
> > > sapply(split(d,idx),var)
> > >
> > > where d is my data vector and idx the index vector.
> > >
> > > Many thanks,
> > >
> > >
> > > iago
> > >
> > >
> > >
> > >
> > > -------------------------------------------------------------
> > > Octave is freely available under the terms of the GNU GPL.
> > >
> > > Octave's home on the web: http://www.octave.org
> > > How to fund new projects: http://www.octave.org/funding.html
> > > Subscription information: http://www.octave.org/archive.html
> > > -------------------------------------------------------------
> > >
> >
> >
> >
> > -------------------------------------------------------------
> > Octave is freely available under the terms of the GNU GPL.
> >
> > Octave's home on the web: http://www.octave.org
> > How to fund new projects: http://www.octave.org/funding.html
> > Subscription information: http://www.octave.org/archive.html
> > -------------------------------------------------------------
> >
>
>
>
> -------------------------------------------------------------
> Octave is freely available under the terms of the GNU GPL.
>
> Octave's home on the web: http://www.octave.org
> How to fund new projects: http://www.octave.org/funding.html
> Subscription information: http://www.octave.org/archive.html
> -------------------------------------------------------------
>
-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.
Octave's home on the web: http://www.octave.org
How to fund new projects: http://www.octave.org/funding.html
Subscription information: http://www.octave.org/archive.html
-------------------------------------------------------------
- Applying function to vector by index, Iago Mosqueira, 2002/12/09
- Re: Applying function to vector by index, Mike Miller, 2002/12/09
- Re: Applying function to vector by index, Paul Kienzle, 2002/12/09
- Re: Applying function to vector by index, Iago Mosqueira, 2002/12/09
- Re: Applying function to vector by index,
Paul Kienzle <=
- Re: Applying function to vector by index, Paul Kienzle, 2002/12/09
- Re: Applying function to vector by index, Andy Adler, 2002/12/09
- Re: Applying function to vector by index, Schloegl Alois, 2002/12/10
- Re: Applying function to vector by index, Paul Kienzle, 2002/12/12
- Re: Applying function to vector by index, Andy Adler, 2002/12/12
- Re: Applying function to vector by index, Schloegl Alois, 2002/12/12
- Re: Applying function to vector by index, Paul Kienzle, 2002/12/12
- Re: Applying function to vector by index, Andy Adler, 2002/12/12
- Re: Applying function to vector by index, Paul Kienzle, 2002/12/12
- Re: Applying function to vector by index, Andy Adler, 2002/12/11