Hello,

There are several notions of "equal". Note that all(mat1 == mat2) alone doesn't allways do it, it only works if the matrices have equal dimensions. If they don't, it breaks the code. That's the case of the first example below.
Try the following.


a <- matrix(1:16, ncol=2)
b <- matrix(1:16, ncol=4, dimnames=list(1:4, letters[1:4]))
d <- matrix(1:16, ncol=4)

a == b   # Error in a == b : non-conformable arrays
identical(a, b)   # FALSE
all.equal(a, b)   # why? different dims and different dimnames

all(d == b)   # TRUE but
identical(d, b)   # FALSE
all.equal(d, b)   # why? different dimnames

# An one line way of solving it.
matequal <- function(x, y)
        is.matrix(x) && is.matrix(y) && dim(x) == dim(y) && all(x == y)

matequal(a, b)   # FALSE
matequal(d, b)   # TRUE


Hope this helps,

Rui Barradas

Em 12-06-2012 08:52, HIMANSHU MITTAL escreveu:
Dear all,
I want to compare two matrices . the code must return True only when all
the elements of the two matices match.

How can this be done in R ?

Regards

        [[alternative HTML version deleted]]

______________________________________________
[email protected] 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.


______________________________________________
[email protected] 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