\in

Числовой тип символьного входа

Синтаксис

in(x,type)

Описание

пример

in(x,type) выражает логическое условие, что x имеет заданный type.

Примеры

Специальное условие на символьной переменной или выражении

in(x,type) синтаксиса выражает условие, что x имеет заданный type. Выразите условие, что x имеет тип Real.

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

Оцените условие с помощью isAlways. Поскольку isAlways не может определить условие, он выдает предупреждение и возвращает логический 0 (false).

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

ans =
  logical
     0

Примите условие, cond является истинным использованием assume, и оцените условие снова. Функция isAlways возвращает логический 1 (true), указывающий, что условие верно.

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

Чтобы использовать x в дальнейших вычислениях, очистите его предположение, воссоздающее его с помощью syms.

syms x

Специальные условия в Выводе

Функционирует, такие как использование solve in в выводе, чтобы выразить условия.

Решите уравнение sin(x) == 0 с помощью solve. Установите опцию ReturnConditions на true возвращать условия на решении. Функция solve использует in, чтобы выразить условия.

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

params =
k

conds =
in(k, 'integer')

Решением является pi*k с параметром k при условии in(k,'integer'). Можно использовать это условие установить предположение для дальнейших вычислений. Под предположением solve возвращает только целочисленные значения k.

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

Чтобы найти решения , соответствующие этим значениям k, используйте subs , чтобы заменить k в solx.

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

Очистите предположение на k, чтобы использовать его в дальнейших вычислениях.

assume(params, 'clear')

Протестируйте, если Элементы Символьной Матрицы Рациональны

Создайте символьный матричный 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]

Используйте isAlways, чтобы протестировать, если элементы M являются рациональными числами. Функция in действует на M поэлементно. Обратите внимание на то, что isAlways возвращает логический 0 (false) для операторов, которые не могут быть решены и выдают предупреждение для тех операторов.

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

Входные параметры

свернуть все

Введите, заданный как символьное число, вектор, матрица, многомерный массив, выражение или функция.

Тип входа, заданного как 'real', 'positive', 'integer' или 'rational'.

Смотрите также

| | | | | | | | | | |

Введенный в R2014b