# Getting multiple matrix-values using a single command

6 messages
Open this post in threaded view
|

## Getting multiple matrix-values using a single command

 Dear all! I'm trying to get multiple values from a matrix by using a single   command. Given a matrix A A <- matrix(seq(1,9),nrow=3,ncol=3) How can I get e.g. the values A[1,2] = 4 and A[3,3] = 9 with a single   command and without using any loop? My first idea was to generate a   row- and a column vector for the indices, i.e. c(1,3) indicating row   number 1 (for A[1,2]) and row number 3 (for A[3,3]) and similar for   column-indices. Then I've tried to call A[c(1,3),c(2,3)] but instead of 4 , 9 the result is [,1] [,2] [1,]    4    7 [2,]    6    9 Any suggestions? Regards, Nils ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Getting multiple matrix-values using a single command

 use a matrix of n x 2 to index. For details: sec. 5.3 "Index matrices" in the introduction. HTH Claudia Nils Rüfenacht wrote: > Dear all! > > I'm trying to get multiple values from a matrix by using a single command. > > Given a matrix A > > A <- matrix(seq(1,9),nrow=3,ncol=3) > > How can I get e.g. the values A[1,2] = 4 and A[3,3] = 9 with a single > command and without using any loop? My first idea was to generate a row- > and a column vector for the indices, i.e. c(1,3) indicating row number 1 > (for A[1,2]) and row number 3 (for A[3,3]) and similar for > column-indices. Then I've tried to call > > A[c(1,3),c(2,3)] > > but instead of 4 , 9 the result is > > [,1] [,2] > [1,]    4    7 > [2,]    6    9 > > Any suggestions? > > Regards, Nils > > ______________________________________________ > [hidden email] 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. -- Claudia Beleites Dipartimento dei Materiali e delle Risorse Naturali Università degli Studi di Trieste Via Alfonso Valerio 6/a I-34127 Trieste phone: +39 0 40 5 58-37 68 email: [hidden email] ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Getting multiple matrix-values using a single command

 In reply to this post by Nils Rüfenacht Try this:  diag(A[c(1,3),c(2,3)]) 2010/3/12 Nils Rüfenacht <[hidden email]>: > Dear all! > > I'm trying to get multiple values from a matrix by using a single command. > > Given a matrix A > > A <- matrix(seq(1,9),nrow=3,ncol=3) > > How can I get e.g. the values A[1,2] = 4 and A[3,3] = 9 with a single > command and without using any loop? My first idea was to generate a row- and > a column vector for the indices, i.e. c(1,3) indicating row number 1 (for > A[1,2]) and row number 3 (for A[3,3]) and similar for column-indices. Then > I've tried to call > > A[c(1,3),c(2,3)] > > but instead of 4 , 9 the result is > > [,1] [,2] > [1,]    4    7 > [2,]    6    9 > > Any suggestions? > > Regards, Nils > > ______________________________________________ > [hidden email] 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. > -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Getting multiple matrix-values using a single command

 In reply to this post by Nils Rüfenacht On Mar 12, 2010, at 9:26 AM, Nils Rüfenacht wrote: > Dear all! > > I'm trying to get multiple values from a matrix by using a single   > command. > > Given a matrix A > > A <- matrix(seq(1,9),nrow=3,ncol=3) > > How can I get e.g. the values A[1,2] = 4 and A[3,3] = 9 with a   > single command and without using any loop? My first idea was to   > generate a row- and a column vector for the indices, i.e. c(1,3)   > indicating row number 1 (for A[1,2]) and row number 3 (for A[3,3])   > and similar for column-indices. Then I've tried to call > > A[c(1,3),c(2,3)] > > but instead of 4 , 9 the result is > > [,1] [,2] > [1,]    4    7 > [2,]    6    9 Pass the indices in a matrix:  >  A[matrix(c(c(1,3), c(2,3)), ncol=2)] [1] 4 9 -- David > > Any suggestions? > > Regards, Nils > > ______________________________________________ > [hidden email] 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. David Winsemius, MD West Hartford, CT ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.