Lee <kaloklee@gmail.com> wrote in message <be6e1c36aa98427bb1d68ac03cc0f4ef@d45g2000hsc.googlegroups.com>...
> Hi,
>
> I need to compute a matrix, S.
> S is a m by m matrix. It is representing sum of squared deviations.
>
> Currently, it is computed using a forloop:
>
> S=[];
> for i=1:N
> x=G(:,i)g_bar;
> S=S+(x*x');
> end
>
> where the inputs are:
> G is a m by N matrix.
> G(:,i) is the ith column of G,
> g_bar is a m by 1 vector.
>
> If you write out this forloop mathematically, you can see S is simply
> the sum of squared deviations. But is there a way to compute it from
> the inputs without such a forloop?

Yesterday I answered this same question in your previous thread with:
G2 = Grepmat(g_bar,1,N);
S = G2*G2';
Was there something objectionable with that answer? It gives the same answer as in your code (aside from the expected roundoff errors) and avoids the forloop construct.
Roger Stafford
