Hi Halim,
I guess this works for you.? Modifying Jeff's solution:
volinp<-c(0,0.000467,0.002762,0.008621,0.020014,0.038907,0.067094)
vol1 <- dcmat %*% (volmat +wt)
for(idx in seq_along(volinp)[-1]){
?vol1 <- cbind(vol1,dcmat %*% (vol1[,idx-1] + volinp[idx] *wt))
?}
#or
vol <- matrix( NA, nrow=5, ncol=length( volinp ) )
vol[ , 1 ] <- dcmat %*% ( volmat + wt )
for ( idx in seq_along(volinp)[ -1 ] ) {
? vol[ , idx ] <- dcmat %*% ( vol[ , idx-1 ] + volinp[idx] * wt )
}
identical(vol,vol1)
#[1] TRUE
A.K.
On Sunday, November 24, 2013 7:16 AM, halim10-fes <halim10-
fes at sust.edu> wrote: Hi Arun,
OK, no problem. Thank you very much for your attention. I've posted
an annex to my previous problem. I will appreciate your
comments/suggestions on it.
Off-topic: You're a very helpful man. I like your attitude to
helping others.
Take care.
Halim
On Sun, 24 Nov 2013 01:18:18 -0800 (PST), arun wrote
Hi,
Please disregard my earlier message. Looks like Jeff understand it
better and answered it. Regards, Arun
On Sunday, November 24, 2013 3:23 AM, arun <smartpink111 at yahoo.com> wrote:
Hi,
I am finding some inconsistency with your description.
For example:
volinp[1]+volmat[1,1]
[1] 101
On Sunday, November 24, 2013 1:52 AM, halim10-fes <halim10-
fes at sust.edu> wrote:
Please apologize me! Earlier I've sent a message erroneously.
Following is the original problem for which I'm seeking help.
Extremely sorry...?
Hi Arun,
Thank you very much for your response. Sorry, if I couldn't explain
clearly. I think, I should restate the problem to get exactly what I
want. Here it goes:
I have 2 matrices and 1 vector, namely,
dcmat<-matrix(c(0.13,0.61,0.25,0.00,0.00,0.00,0.52,0.37,0.09,0.00,
0.00,0.00, ? ? ? ? ? ? ? ? 0.58,0.30,0.11,0.00,0.00,0.00,0.46,0.22,
0.00,0.00,0.00,0.00, ? ? ? ? ? ? ? ? 0.09),nrow=5,ncol=5)
volmat<-matrix(c(100,0,0,0,0),nrow=5,ncol=1)
volinp<-c(1:40)
What I essentially want to do is to multiply 'dcmat' with 'volmat'
and dump the output in a new matrix 'vol'. But before that, in the
first step, I want to add volinp[1] with volmat[1,1]. So, the first
column of the output matrix 'vol' matrix will be:
? ? ? ? [,1]
[1,]?? 13.13
[2,]?? 61.61
[3,]?? 25.25
[4,]? ? 0.00
[5,]? ? 0.00
In the 2nd step, I want to replace 'volmat' with vol[,1] and add
volinp[2] with vol[1,1]. The new 'volmat' will look like:
? ? ? ? [,1]
[1,]?? 15.13
[2,]?? 61.61
[3,]?? 25.25
[4,]? ? 0.00
[5,]? ? 0.00
Then multiply 'dcmat' with the new 'volmat', and the 2nd column of
output matrix 'vol' will look like:
? ? ? ? [,2]
[1,]? 1.9669
[2,] 41.2665
[3,] 41.2232
[4,] 13.1199
[5,]? 2.7775
Then again, replace the 'volmat' with vol[,2], add volinp[3] with
vol[1,2] and multiply the new 'volmat' with 'dcmat'. This
replacement, addition, multiplication, and dumping will continue up
to the length of 'volinp' and the final output matrix 'vol' will be
something like:
? ? ? [,1]? ? [,2]? ? ? [,3]? ? ...length(volinp)
[1,] 13.13?? 1.9669?? 0.645697? ...
[2,] 61.61? 41.2665? 24.488389? ...
[3,] 25.25? 41.2232? 40.419786? ...
[4,]? 0.00? 13.1199? 22.116099? ...
[5,]? 0.00?? 2.7775?? 7.670905? ...?
Within my limited capacity, I've tried to come up with a solution
but failed.
I'll appreciate your/others' help with gratefulness.
Regards,
Halim
---------------
Md. Abdul Halim
Assistant Professor
Department of Forestry and Environmental Science
Shahjalal University of Science and Technology,Sylhet-3114,
Bangladesh.
Cell: +8801714078386.
alt. e-mail: xou03 at yahoo.com
On Sat, 23 Nov 2013 14:10:12 -0800 (PST), arun wrote
Hi,
Could you show your expected output?? It is a bit unclear from the
On Saturday, November 23, 2013 2:00 PM, halim10-fes <halim10-
fes at sust.edu> wrote: Dear R-friends,
Hope you doing well. I've been trying to deal with the following
problem for the couple of days but couldn't come up with a solution.
It would be great if any of you could give some insight into it.
I have three matrices like:
dcvol<-matrix(c(0.13,0.61,0.25,0.00,0.00,0.00,0.52,0.37,0.09,0.00,
0.00,0.00, ? ? ? ? ? ? ? ? 0.58,0.30,0.11,0.00,0.00,0.00,0.46,0.22,
0.00,0.00,0.00,0.00, ? ? ? ? ? ? ? ? 0.09),nrow=5,ncol=5)
matrix(c(100,0,0,0,0),nrow=5,ncol=1)
scvol<-matrix(c(1:40),nrow=5,ncol=8)
What I essentially want to do is to add each value in scvol[1,] with
the volinp[1,1] and then multiply each new volinp with dcvol and
finally put the outputs in a new matrix.
Thanks in advance.
Halim? ? ? ? ? ? ? ?
---------------
Md. Abdul Halim
Assistant Professor
Department of Forestry and Environmental Science
Shahjalal University of Science and Technology,Sylhet-3114,
Bangladesh.
Cell: +8801714078386.
alt. e-mail: xou03 at yahoo.com
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.