[R] Problems dealing with matrices
halim10-fes
halim10-fes at sust.edu
Sun Nov 24 11:31:59 CET 2013
Hi Jeff,
Thank you very much for your response. Your code produced exactly the same as
I described. I also like your idea of including 'wt' matrix. Can you please
suggest me if the 'volinp' is not sequential? Consider a new 'volinp', like:
volinp<-c(0,0.000467,0.002762,0.008621,0.020014,0.038907,0.067094)
How can I deal with this?
Regards,
Halim
On Sun, 24 Nov 2013 00:37:07 -0800 (PST), Jeff Newmiller wrote
> I think the following is a pretty literal translation from your
> description. Looks like a linear difference equation with a ramp
> forcing function.
>
> wt <- matrix( c(1,0,0,0,0 ), nrow=5 )
> vol <- matrix( NA, nrow=5, ncol=length( volinp ) )
> vol[ , 1 ] <- dcmat %*% ( volmat + wt )
>
> for ( idx in volinp[ -1 ] ) {
> vol[ , idx ] <- dcmat %*% ( vol[ , idx-1 ] + idx * wt )
> }
>
> On Sun, 24 Nov 2013, halim10-fes 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
> > description.
> >>
> >> 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)
> > volinp<-
> >> 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.
> >>
> >> ______________________________________________
> >> 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.
> >
> >
> > --
> > This message has been scanned for viruses and
> > dangerous content by MailScanner, and is
> > believed to be clean.
> >
> > ______________________________________________
> > 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.
> >
>
> ---------------------------------------------------------------------------
> Jeff Newmiller The ..... ..... Go Live...
> DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#.
> Live Go... Live: OO#.. Dead:
> OO#.. Playing Research Engineer (Solar/Batteries O.O#.
> #.O#. with /Software/Embedded Controllers) .OO#.
> .OO#. rocks...1k
> ---------------------------------------------------------------------------
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
---------------
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.
More information about the R-help
mailing list