From: Santosh <santosh2005_at_gmail.com>

Date: Wed, 27 Apr 2011 06:41:13 -0700

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. Received on Wed 27 Apr 2011 - 13:47:32 GMT

Date: Wed, 27 Apr 2011 06:41:13 -0700

Thanks, David! That is another interesting perspective to (sub/super) diagonal story! For now I was looking only at block sizes of lower triangle submatrices as Dennis suggested.

On Wed, Apr 27, 2011 at 5:57 AM, David Winsemius <dwinsemius_at_comcast.net>wrote:

*>
*

> On Apr 27, 2011, at 12:07 AM, Dennis Murphy wrote:

*>
**> Hi:
**>>
**>> Maybe this can help get you started. Reading your data into a matrix m,
**>>
**>> m <- structure(c(1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
**>> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
**>> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
**>> 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
**>> 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
**>> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), .Dim = c(11L,
**>> 11L))
**>>
**>> rowSums(m) + colSums(m) - 1
**>> [1] 2 2 1 -1 3 3 3 3 3 3 -1
**>>
**>> The pair of 2's => a 2 x 2 block, 1 => a 1 x 1 matrix with value 1, -1
**>> => a 1 x 1 matrix with entry 0, a triplet of 3's => a 3 x 3 subblock,
**>> etc. You should be able to figure out the rows and columns for each
**>> submatrix from the indices of the vector above; the values provide an
**>> indication of matrix size as well as position.
**>>
**>>
**> If we are in the stage of providing potentially useful but incomplete
**> ideas, this would be my notion. Use the row and col functions with "[" to
**> locate non-zero elements in the diagonal and subdiagonal:
**>
**> Diagonal: (My matrix was named `mm`)
**> > mm[row(mm)==col(mm)]
**> [1] 1 1 1 0 1 1 1 1 1 1 0
**> First subdiagonal:
**> > mm[row(mm)==col(mm)+1]
**>
**> [1] 0 0 0 0 0 0 0 0 0 0
**> First superdiagonal:
**> > mm[row(mm)==col(mm)-1]
**> [1] 1 0 0 0 1 1 0 1 1 0
**>
**> Perhaps a combination of the two? It seems as though the rowSums/colSums
**> approach might be insensitive to whether triangular blocks were sub or super
**> diagonal:
**>
**> > rowSums(mm) + colSums(mm) - 1
**>
**> [1] 2 2 1 -1 3 3 3 3 3 3 -1
**> > mm[1,2]<-0
**> > mm[2,1]<-1
**> > rowSums(mm) + colSums(mm) - 1
**>
**> [1] 2 2 1 -1 3 3 3 3 3 3 -1
**>
**> HTH,
**>> Dennis
**>>
**>>
**>>
**>> On Tue, Apr 26, 2011 at 5:13 PM, Santosh <santosh2005_at_gmail.com> wrote:
**>>
**>>> Dear Rxperts
**>>>
**>>> Below is a small vector of values of zeros and non-zeros... was wondering
**>>> if
**>>> there is an efficient way to get the block sizes of submatrices of a big
**>>> matrix similar to the one shown below? diagonal elements can be zero too.
**>>> Rows with only a diagonal element may be considered as a unit block size.
**>>>
**>>> c(1,0,0,0,0,0,0,0,0,0,0,
**>>> 1,1,0,0,0,0,0,0,0,0,0,
**>>> 0,0,1,0,0,0,0,0,0,0,0,
**>>> 0,0,0,0,0,0,0,0,0,0,0,
**>>> 0,0,0,0,1,0,0,0,0,0,0,
**>>> 0,0,0,0,1,1,0,0,0,0,0,
**>>> 0,0,0,0,1,1,1,0,0,0,0,
**>>> 0,0,0,0,0,0,0,1,0,0,0,
**>>> 0,0,0,0,0,0,0,1,1,0,0,
**>>> 0,0,0,0,0,0,0,1,1,1,0,
**>>> 0,0,0,0,0,0,0,0,0,0,0)
**>>>
**>>> Thanks much!
**>>> Santosh
**>>>
**>>> [[alternative HTML version deleted]]
**>>>
**>>> ______________________________________________
**>>> 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.
**>>
**>
**> David Winsemius, MD
**> West Hartford, CT
**>
**>
*

[[alternative HTML version deleted]]

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. Received on Wed 27 Apr 2011 - 13:47:32 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Fri 29 Apr 2011 - 17:50:34 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*