Hi,

I need to compare two matrices with each other. If you can get one of them out of the other one by resorting the rows and/or the columns, then both of them are equal, otherwise they're not. A matrix could look like this:

    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    0    1    1    1    0    1    1    0
[2,]    1    1    0    0    0    1    0    1
[3,]    1    0    1    0    0    0    1    1
[4,]    1    1    0    0    1    0    0    0
[5,]    1    0    1    1    1    0    0    0
[6,]    0    1    0    1    1    0    0    0
[7,]    0    0    0    0    0    1    1    1

Note that each matrix consists of ones and zeros, in each row and in each column there are at least three ones and one zero and each pair of rows/columns may have at most two positions where both are ones (e.g. for the 1. and 2. rows those positions are 2 and 6).

I was advised to sort both matrices in the same way and then to compare them element by element. But I don't manage to get them sorted... My approach is as following:

1. Sort the rows after the row sums (greater sums first).
2. Sort the columns after the first column (columns with ones in the first row go left, columns with zeros go right). 3. Save the left part (all columns with ones in the first row) and the right part in separate matrices. 4. Repeat steps 2 and 3 with both of the created matrices (now taking the second row for sorting), repeat until all fragments consist of a single column.
5. Compose the columns to a sorted matrix.

This algorithm has several problems:

1. How to make a loop that is branching out in two subloops on each iteration? 2. How to organize the intermediate results and compose them without losing the order? Maybe save them in lists and sublists? 3. A fundamental problem: If there are rows with equal sums the result may depend on which of them is sorted after first. Maybe this algorithm won't work at all because of this problem?

Thanks in advance for your input,
Michael

______________________________________________
R-help@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.

Reply via email to