Main Content

in

Numeric type of symbolic input

Description

in(x,type) expresses the logical condition that x is of the specified type.

example

Examples

Express Condition on Symbolic Variable or Expression

The syntax in(x,type) expresses the condition that x is of the specified type. Express the condition that x is of type Real.

syms x
cond = in(x,'real')
cond =
in(x, 'real')

Evaluate the condition using isAlways. Because isAlways cannot determine the condition, it issues a warning and returns logical 0 (false).

isAlways(cond)
Warning: Unable to prove 'in(x, 'real')'.

ans =
  logical
     0

Assume the condition cond is true using assume, and evaluate the condition again. The isAlways function returns logical 1 (true) indicating that the condition is true.

assume(cond)
isAlways(cond)
ans =
  logical
     1

To use x in further computations, clear its assumption recreating it using syms.

syms x

Express Conditions in Output

Functions such as solve use in in output to express conditions.

Solve the equation sin(x) == 0 using solve. Set the option ReturnConditions to true to return conditions on the solution. The solve function uses in to express the conditions.

syms x
[solx, params, conds] = solve(sin(x) == 0,'ReturnConditions',true)
solx =
pi*k

params =
k

conds =
in(k, 'integer')

The solution is pi*k with parameter k under the condition in(k,'integer'). You can use this condition to set an assumption for further computations. Under the assumption, solve returns only integer values of k.

assume(conds)
k = solve(solx > 0, solx < 5*pi, params)
k =
 1
 2
 3
 4

To find the solutions corresponding to these values of k, use subs to substitute for k in solx.

subs(solx,k)
ans =
   pi
 2*pi
 3*pi
 4*pi

Clear the assumption on k to use it in further computations.

assume(params, 'clear')

Test if Elements of Symbolic Matrix Are Rational

Create symbolic matrix M.

syms x y z
M = sym([1.22 i x; sin(y) 3*x 0; Inf sqrt(3) sym(22/7)])
M =
[  61/50,      1i,    x]
[ sin(y),     3*x,    0]
[    Inf, 3^(1/2), 22/7]

Use isAlways to test if the elements of M are rational numbers. The in function acts on M element-by-element. Note that isAlways returns logical 0 (false) for statements that cannot be decided and issues a warning for those statements.

in(M,'rational')
ans =
[  in(61/50, 'rational'),      in(1i, 'rational'),    in(x, 'rational')]
[ in(sin(y), 'rational'),     in(3*x, 'rational'),    in(0, 'rational')]
[    in(Inf, 'rational'), in(3^(1/2), 'rational'), in(22/7, 'rational')]
isAlways(in(M,'rational'))
Warning: Unable to prove 'in(sin(y), 'rational')'.
Warning: Unable to prove 'in(3*x, 'rational')'.
Warning: Unable to prove 'in(x, 'rational')'.
ans =
  3×3 logical array
   1   0   0
   0   0   1
   0   0   1

Input Arguments

collapse all

Input, specified as a symbolic number, vector, matrix, multidimensional array, expression, or function.

Type of input, specified as 'real', 'positive', 'integer', or 'rational'.

Version History

Introduced in R2014b

Go to top of page

Help us improve MATLAB

Earn up to $100 by participating in usability research.