s-news
[Top] [All Lists]

Re: Matrix minus A Vector

To: "'Chen,Sichong'" <sichong.chen@postgrad.manchester.ac.uk>, <s-news@lists.biostat.wustl.edu>
Subject: Re: Matrix minus A Vector
From: "Christos Hatzis" <christos@nuverabio.com>
Date: Thu, 26 Oct 2006 16:15:22 -0400
In-reply-to: <20061026200404.339B413731F@mailgate.biostat.wustl.edu>
Organization: Nuvera Biosciences
Reply-to: <christos@nuverabio.com>
Thread-index: Acb5Odr5iWh7IazES3CjSdy2ytlpnQAAZJXg
You can try this:

ones <- matrix(1,4,3)
B <- t(t(ones) * c(2,4,3))

A-B
should give you the desired result, where A is your original matrix.

-Christos  

-----Original Message-----
From: s-news-owner@lists.biostat.wustl.edu
[mailto:s-news-owner@lists.biostat.wustl.edu] On Behalf Of Chen,Sichong
Sent: Thursday, October 26, 2006 4:04 PM
To: s-news@lists.biostat.wustl.edu
Subject: [S] Matrix minus A Vector

Dear Users

I have a matrix (4x3)
4       5       6       
2       4       5       
2       4       6       
6       5       5       
3       8       9       

And a vector   (1x3)
2       4       3       

I would like to use the first column of the matrix minus the first number of
the vector "2", then the second column of the matrix minus the second number
of the vector "4" and so on.

The final result of a matrix is supposed to be:
2       1       3       
0       0       2       
0       0       3       
4       1       2       
1       4       6       

I know the stupid way is to calculate one column by one column, but I think
there must be some quicker and smarter way to do it.

Many thanks,
Regards,
Sichong
SPlus 7.0 & FinMetrics 2.0 User
Windows XP



--------------------------------------------------------------------
This message was distributed by s-news@lists.biostat.wustl.edu.  To
unsubscribe send e-mail to s-news-request@lists.biostat.wustl.edu with the
BODY of the message:  unsubscribe s-news




<Prev in Thread] Current Thread [Next in Thread>