Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
trying to avoid using a for loop

Subject: trying to avoid using a for loop

From: Ka Lee

Date: 25 Oct, 2008 18:52:01

Message: 1 of 3

Hi.

I am trying to compute S.
S is a m by m matrix.

To create S, I use the following information.

G is a m by N matrix.
G(:,i) is the ith column of G.
g_bar is a m by 1 vector.

This for-loop can compute S.
S=[];
for i=1:N
     x=G(:,i)-g_bar;
     S=S+(x*x');
end

I am wondering if there is a way to compute S without the for-loop. Thanks.

Subject: trying to avoid using a for loop

From: Budias Aao

Date: 25 Oct, 2008 19:19:02

Message: 2 of 3

"Ka Lee" <kaloklee@gmail.com> wrote in message <gdvpsh$26q$1@fred.mathworks.com>...
> Hi.
>
> I am trying to compute S.
> S is a m by m matrix.
>
> To create S, I use the following information.
>
> G is a m by N matrix.
> G(:,i) is the ith column of G.
> g_bar is a m by 1 vector.
>
> This for-loop can compute S.
> S=[];
> for i=1:N
> x=G(:,i)-g_bar;
> S=S+(x*x');
> end

> I am wondering if there is a way to compute S without the for-loop. Thanks.


What is the problem with the for loop?
Does it give a wrong result?
Is it not pretty?

Subject: trying to avoid using a for loop

From: Roger Stafford

Date: 25 Oct, 2008 21:48:02

Message: 3 of 3

"Ka Lee" <kaloklee@gmail.com> wrote in message <gdvpsh$26q$1@fred.mathworks.com>...
> .......
> for i=1:N
> x=G(:,i)-g_bar;
> S=S+(x*x');
> end
>
> I am wondering if there is a way to compute S without the for-loop.

 G2 = G-repmat(g_bar,1,N);
 S = G2*G2';

Roger Stafford

Tags for this Thread

No tags are associated with this thread.

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us