[R] simple matrix calculation
Berend Hasselman
bhh at xs4all.nl
Thu Mar 29 14:23:45 CEST 2012
On 29-03-2012, at 13:16, Kehl Dániel wrote:
> Dear David, Ted, Kjetil, Petr,
>
> thank you, you guys did a great job, I'll use your ideas in the future for sure.
> After I sent the question I figured a way, see below.
>
> x <- 1:81
> b <- 1:3
> Q <- matrix(x,9,9)
> result <- matrix(matrix(colSums(matrix(t(Q),3)),,3,TRUE) %*% b,3,3)
>
> I hope there is no error in this solution and you can use this idea sometime!
>
Have you compared result with R1 and R2, provided by Petr's solution?
Berend
> Thank you again, have a great day
> Daniel
>
> 2012.03.29. 8:48 keltezéssel, Petr Savicky írta:
>> On Wed, Mar 28, 2012 at 10:46:11PM +0200, Kehl Dániel wrote:
>>> Dear list-members,
>>>
>>> I have a 9-by-9 matrix lets call it A with first row a11, a12, a13,...,
>>> a19 etc.
>>> I also have a vector of length 3 (B).
>>> I want to construct a matrix of size 3x3 in the following way:
>>> - divide matrix A to 9 3x3 blocks
>>> - first is
>>> a11, a12, a13
>>> a21, a22, a23
>>> a31, a32, a33
>>> - I want to get rowSums of this A1 matrix
>>> - Multiply A1*B and get a scalar, the first element of my new 3x3 matrix.
>> Hi.
>>
>> Try the following, which is based on the solution by Ted Harding.
>>
>> # some input
>> A<- matrix(1:81, nrow=9, ncol=9)
>> B<- 7:5
>>
>> # compute the 3 x 3 matrix
>> C<- diag(3)[rep(1:3, each=3), ]
>> D<- cbind(rbind(B, 0, 0), rbind(0, B, 0), rbind(0, 0, B))
>> R1<- D %*% A %*% C
>>
>> # compare with another approach
>> E<- A * matrix(B, nrow=9, ncol=9) # component wise product
>> C<- diag(3)[rep(1:3, each=3), ]
>> R2<- t(C) %*% E %*% C
>>
>> max(abs(R1 - R2)) # [1] 0
>>
>> Hope this helps.
>>
>> Petr Savicky.
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
More information about the R-help
mailing list