This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Subtract expressions

MuPAD® notebooks are not recommended. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.


_subtract(x, y)


_subtract(x, y) subtracts y from x.

The difference operator - does not call _subtract(x, y). The difference x - y is equivalent to x + (-y) = _plus (x, _negate(y)).

To implement the slot d::_subtract for your domain d, use the following convention:

  • If both x and y are elements of d, the slot must return an appropriate difference of type d.

  • If x or y is not an element of d and cannot be converted to an element of d, the slot must return FAIL.

  • If x or y is not an element of d, but can be converted to type d, use the following approach. This object must be converted to an element of d only if the mathematical semantics is obvious to all users of d, including the users who treat this domain as a "black box". For example, you can regard integers as rational numbers because of the natural mathematical embedding, but you must make sure that all users are aware of this approach. Otherwise, the "_subtract" method must return FAIL instead of using implicit conversions. If you use implicit conversions for the elements of your domain, document these conversions.

In the MuPAD® standard installation, most of the library domains comply with this convention.

_subtract can subtract polynomials of the DOM_POLY type from a polynomial of the same type. The polynomials must have the same indeterminates and the same coefficient ring.

_subtract can subtract finite sets from a finite set. For finite sets X and Y, the difference is the set .


Example 1

Compute the difference of the following arithmetical expressions by using the _subtract method. Then, compute the difference of the same expressions by using the difference operator:

_subtract(x, y), x - y

Although both _subtract and the difference operator return the same result for these expressions, the _subtract call is not equivalent to x - y:

type(hold(x - y)), type(hold(_subtract(x, y)))

Example 2

Use the _subtract function when combining the following lists:

zip([a, b, c, d], [1, 2, 3, 4], _subtract)


x, y

arithmetical expressions, polynomials of type DOM_POLY, or sets

Return Values

arithmetical expression, a polynomial, or a set.

Overloaded By

x, y

See Also

MuPAD Functions

Was this topic helpful?