diff --git a/+quantity/Discrete.m b/+quantity/Discrete.m
index a914a0cded1470df8bb7c84ce54c181a69e2305a..c3e0cabe9134fab638c3c3cf3164c726e4f82434 100644
--- a/+quantity/Discrete.m
+++ b/+quantity/Discrete.m
@@ -268,7 +268,13 @@ classdef  (InferiorClasses = {?quantity.Symbolic}) Discrete < handle & matlab.mi
 						end
 					end
 				elseif nargin == 3
-					assert(iscell(myDomain), 'If the domain is specified by cell-array pairs, the value myDomain must be a cell-array with grid entries')
+					% case 2: a domain is specified by a grid and a grid
+					% name. Then, the first input parameter is the grid,
+					% i.e., myGrid = myDomain and the second is the grid
+					% name.
+					myDomain = misc.ensureIsCell(myDomain);
+					gridNames = misc.ensureIsCell(gridNames);
+
 					assert(all(cellfun(@(v)isvector(v), myDomain)), 'The cell entries for a new grid have to be vectors')
 					assert(iscell(gridNames), 'The gridNames parameter must be cell array')
 					assert(all(cellfun(@ischar, gridNames)), 'The gridNames must be strings')