With this patch,
> A <- matrix(1, 2, 2)
> B <- matrix(2, 3, 2)
> A %*% B
Error in A %*% B :
non-conformable arguments of dimension (2, 2) and (3, 2)
>From 205b591d4d14b5ff667325fb233a6deb08314726 Mon Sep 17 00:00:00 2001
From: Joshua Nathaniel Pritikin
Date: Fri, 5 Apr 2019 12:03:58 -0400
Subject: [PATCH] Improve non-conformable arguments error message
---
src/main/array.c | 9 ++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/main/array.c b/src/main/array.c
index 4b95e33..cedf627 100644
--- a/src/main/array.c
+++ b/src/main/array.c
@@ -1350,15 +1350,18 @@ SEXP attribute_hidden do_matprod(SEXP call, SEXP op,
SEXP args, SEXP rho)
if (PRIMVAL(op) == 0) {
/* primitive, so use call */
if (ncx != nry)
- errorcall(call, _("non-conformable arguments"));
+ errorcall(call, _("non-conformable arguments of dimension (%d, %d)
and (%d, %d)"),
+ nrx, ncx, nry, ncy);
}
else if (PRIMVAL(op) == 1) {
if (nrx != nry)
- error(_("non-conformable arguments"));
+ error(_("non-conformable arguments of dimension (%d, %d) and (%d,
%d)"),
+ nrx, ncx, nry, ncy);
}
else {
if (ncx != ncy)
- error(_("non-conformable arguments"));
+ error(_("non-conformable arguments of dimension (%d, %d) and (%d,
%d)"),
+ nrx, ncx, nry, ncy);
}
if (isComplex(CAR(args)) || isComplex(CADR(args)))
--
2.19.1
__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel