Not sure you really want the overhead of sweep() for this, but logically, you
want z as a vector or maybe 1d array since sweep() is designed as complimentary
to apply(). I.e., you can sweep out marginal means using, say,
m - matrix(c(5, 7, 9, 13), 2)
colmean - apply(m, 2, mean)
sweep(m, 2,
Hi,
I have this:
y = matrix(cbind(c(0, 0.5, 1),c(0, 0.5, 1)),ncol=2)
z = matrix(c(12, -6),ncol=2)
In matlab I would do this
y .* x
I would get this in matlab
ans
0-0
6-3
12 -6
What is the equivalent in R?
Thanks
[[alternative HTML version deleted]]
Thank you Chel Hee.
Isn't there a simpler way to do so?
On Wed, Nov 19, 2014 at 3:35 PM, Chel Hee Lee chl...@mail.usask.ca wrote:
y = matrix(cbind(c(0, 0.5, 1),c(0, 0.5, 1)),ncol=2)
z = matrix(c(12, -6),ncol=2)
t(apply(y, 1, function(x) x*z))
[,1] [,2]
[1,]00
[2,]6 -3
On 19-11-2014, at 15:22, Ruima E. ruimax...@gmail.com wrote:
Hi,
I have this:
y = matrix(cbind(c(0, 0.5, 1),c(0, 0.5, 1)),ncol=2)
z = matrix(c(12, -6),ncol=2)
In matlab I would do this
y .* x
I would get this in matlab
ans
0-0
6-3
12 -6
What is the equivalent
On Wed, Nov 19, 2014 at 9:50 AM, Berend Hasselman b...@xs4all.nl wrote:
On 19-11-2014, at 15:22, Ruima E. ruimax...@gmail.com wrote:
Hi,
I have this:
y = matrix(cbind(c(0, 0.5, 1),c(0, 0.5, 1)),ncol=2)
z = matrix(c(12, -6),ncol=2)
In matlab I would do this
y .* x
I would get this in
When your matrices are the same size, the * operator does what you want. The
problem is that you have to make a conforming version of z before you can use
that operator.
y*matrix(rep(z,3),ncol=2,byrow=TRUE)
or
y*matrix(rep(z,each=3),ncol=2)
To interpret this, just keep in mind that matrices
Another (simpler) way that I can think is that
y * matrix(rep(z,3), ncol=ncol(y), byrow=TRUE)
[,1] [,2]
[1,]00
[2,]6 -3
[3,] 12 -6
I hope this helps.
Chel Hee Lee
On 14-11-19 08:43 AM, Ruima E. wrote:
Thank you Chel Hee.
Isn't there a simpler way to do so?
On
y = matrix(cbind(c(0, 0.5, 1),c(0, 0.5, 1)),ncol=2)
z = matrix(c(12, -6),ncol=2)
t(apply(y, 1, function(x) x*z))
[,1] [,2]
[1,]00
[2,]6 -3
[3,] 12 -6
I hope this helps.
Chel Hee Lee
On 14-11-19 08:22 AM, Ruima E. wrote:
Hi,
I have this:
y = matrix(cbind(c(0, 0.5,
Hi,
It is better to use sweep() for these kinds of problems, see ?sweep
y - matrix(cbind(c(0, 0.5, 1),c(0, 0.5, 1)),ncol=2)
z - matrix(c(12, -6),ncol=2)
sweep(y, 2, z, *)
Best,
Denes
On 11/19/2014 03:50 PM, Berend Hasselman wrote:
On 19-11-2014, at 15:22, Ruima E. ruimax...@gmail.com
Hi,
just for the records, your original code seems incorrect, see inline.
On 11/19/2014 03:22 PM, Ruima E. wrote:
Hi,
I have this:
y = matrix(cbind(c(0, 0.5, 1),c(0, 0.5, 1)),ncol=2)
z = matrix(c(12, -6),ncol=2)
In matlab I would do this
y .* x
Here you wrote 'x' which I guess refers to
It can be simplified a bit, though, as the second operand in the multiplication
does not need to be a matrix:
y * rep(z,each=3)
On 19 Nov 2014, at 16:24 , Jeff Newmiller jdnew...@dcn.davis.ca.us wrote:
When your matrices are the same size, the * operator does what you want.
Or ... if you mean simpler as in less to type, you can define your own
binary operator by enclosing it in % signs, and the assign any of the
previously proposed solutions, e.g.
y = matrix(cbind(c(0, 0.5, 1),c(0, 0.5, 1)),ncol=2)
z = matrix(c(12, -6),ncol=2)
'%.*%' - function(a,b) {a * rep(b,
What you have written does not work in Matlab -
y = [0 0;0.5 0.5;1 1]
y =
0 0
0.50000.5000
1.1.
z = [12, -6]
z =
12-6
.
y .* z
Error using .*
Matrix dimensions must agree.
When dimensions agree it you get the same result in R as in
13 matches
Mail list logo