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 <jpriti...@pobox.com> 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