hasSymType

Определите, содержит ли символьный объект определенный тип

Описание

пример

TF = hasSymType(symObj,type) возвращает логический 1 (true) если символический объект symObj содержит подобъект типа type, и логические 0 (false) в противном случае. Область входа type должен быть строковым скаляром с учетом регистра или вектором символов, и может включать логическое выражение.

пример

TF = hasSymType(symObj,funType,vars) проверяет, symObj ли содержит неназначенную символьную функцию, которая зависит от переменных vars.

Можно задать тип функции funType на 'symfunOf' или 'symfunDependingOn'. Для примера, syms f(x); hasSymType(f,'symfunOf',x) возвращает логический 1.

Примеры

свернуть все

Определите, содержит ли символьное выражение символьную переменную, константу или число определенного типа.

Создайте символическое выражение.

syms x;
expr = sym('1/2') + 2*pi + x
expr = 

x+2π+12x + 2 * sym (pi) + sym (1/2)

Проверяйте, expr ли содержит символьную переменную типа 'variable'.

TF = hasSymType(expr,'variable')
TF = logical
   1

Проверяйте, expr ли содержит символьную константу типа 'constant'.

TF = hasSymType(expr,'constant')
TF = logical
   1

Проверяйте, expr ли содержит символьное число типов 'integer'.

TF = hasSymType(expr,'integer')
TF = logical
   1

Проверяйте, expr ли содержит символьное число типов 'integer | real'.

TF = hasSymType(expr,'integer | real')
TF = logical
   1

Проверяйте, expr ли содержит символьное число типов 'complex'.

TF = hasSymType(expr,'complex')
TF = logical
   0

Определите, содержит ли символьное уравнение символьную функцию или оператор определенного типа.

Создайте символьное уравнение.

syms f(x) n
eq = f(x^n) + int(f(x),x) + vpa(2.7) == 1i
eq = 

f(xn)+f(x)dx+2.7=if (x ^ n) + int (f (x), x) + vpa ('2.7') = = sym (1i)

Проверяйте, eq ли содержит символическую функцию 'f'.

TF = hasSymType(eq,'f')
TF = logical
   1

Проверяйте, eq ли содержит неназначенную символьную функцию типа 'symfun'.

TF = hasSymType(eq,'symfun')
TF = logical
   1

Проверяйте, eq ли содержит символьную математическую функцию типа 'int'.

TF = hasSymType(eq,'int')
TF = logical
   1

Проверяйте, eq ли содержит оператор типа 'power'.

TF = hasSymType(eq,'power')
TF = logical
   1

Создайте символьную функцию из нескольких переменных, используя syms.

syms f(x,y,z)
g = f + x*y + pi
g(x, y, z) = π+xy+f(x,y,z)sym(pi) + x*y + f(x, y, z)

Проверяйте, g ли зависит от точной переменной x использование 'symfunOf'.

TF = hasSymType(g,'symfunOf',x)
TF = logical
   0

Проверяйте, g ли зависит от точной последовательности переменных [x y z] использование 'symfunOf'.

TF = hasSymType(g,'symfunOf',[x y z])
TF = logical
   1

Проверяйте, g ли имеет любую зависимость от переменных [y x] использование 'symfunDependingOn'.

TF = hasSymType(g,'symfunDependingOn',[y x])
TF = logical
   1

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

свернуть все

Символические объекты, заданные в виде символьных выражений, символьных функций, символьных переменных, символьных чисел или символьных модулей.

Символические типы, заданные как чувствительная к регистру скалярная строка или вектор символов. Область входа type может содержать логическое выражение. Далее приводятся опции значения.

Категория символического типаСтроковые значенияПримеры Возврата Логического 1
числа
  • 'integer' - целочисленные числа

  • 'rational' - рациональные числа

  • 'vpareal' - переменная точность с плавающей точкой вещественные числа

  • 'complex' - комплексные числа

  • 'real' - действительные числа, включая 'integer', 'rational', и 'vpareal'

  • 'number' - номера, включая 'integer', 'rational', 'vpareal', 'complex', и 'real'

  • hasSymType(sym(2),'integer')

  • hasSymType(sym(1/2),'rational')

  • hasSymType(vpa(0.5),'vpareal')

  • hasSymType(vpa(1i),'complex')

  • hasSymType([sym(1/2) vpa(0.5)],'real')

  • hasSymType([vpa(1i) sym(1/2)],'number')

константы'constant' - символьные математические константы, включая 'number'hasSymType([sym(pi) vpa(1i)],'constant')
символьные математические функции'vpa', 'sin', 'exp', и так далее - символьные математические функции в символьных выраженияхhasSymType(vpa(sym(pi)),'vpa')
неназначенные символьные функции
  • 'F', 'g', и так далее - имя функции неназначенной символьной функции

  • 'symfun' - неназначенные символические функции

  • syms F(x); hasSymType(F(x+2),'F')

  • syms g(x); hasSymType(g(x),'symfun')

арифметические операторы
  • 'plus' - оператор сложения + и оператор вычитания -

  • 'times' - оператор умножения * и оператором деления /

  • 'power' - оператор степени или экспоненции ^ и квадратный корневой оператор sqrt

  • syms x y; hasSymType(2*x + y,'plus')

  • syms x y; hasSymType(x*y,'times')

  • syms x y; hasSymType(x^(y+2),'power')

переменные'variable' - символьные переменныеhasSymType(sym('x'),'variable')
модули'units' - символические модулиhasSymType(symunit('m'),'units')
выражения'expression' - символические выражения, включая все предыдущие символические типы hasSymType(sym('x')+1,'expression')
логические выражения
  • 'or' - логический оператор ИЛИ |

  • 'and' - логический оператор И &

  • 'not' - логический оператор NOT ~

  • 'xor' - логический оператор exclusive-OR xor

  • 'logicalconstant' - символические логические константы symtrue и symfalse

  • 'logicalexpression' - логические выражения, включая 'or', 'and', 'not', 'xor', symtrue и symfalse

  • syms x y; hasSymType(x|y,'or')

  • syms x y; hasSymType(x&y,'and')

  • syms x; hasSymType(~x,'not')

  • syms x y; hasSymType(xor(x,y),'xor')

  • hasSymType(symtrue,'logicalconstant')

  • syms x y; hasSymType(~x|y,'logicalexpression')

уравнения и неравенства
  • 'eq' - оператор равенства ==

  • 'ne' - оператор неравенства ~=

  • 'lt' - меньше, чем оператор < или больше, чем оператор >

  • 'le' - оператор меньше, чем-или равный- <= или оператор, больший, чем - или равный - >=

  • 'equation' - символьные уравнения и неравенства, включая 'eq', 'ne', 'lt', и 'le'

  • syms x; hasSymType(x==2,'eq')

  • syms x; hasSymType(x~=1,'ne')

  • syms x; hasSymType(x>0,'lt')

  • syms x; hasSymType(x<=2,'le')

  • syms x; hasSymType([x>0 x~=1],'equation')

неподдерживаемые символические типы

'unsupported' - неподдерживаемые символические типы

 

Тип функции, заданный как 'symfunOf' или 'symfunDependingOn'.

  • 'symfunOf' проверяет, symObj ли содержит неназначенную символьную функцию, которая зависит от точной последовательности переменных, заданных массивом vars. Для примера, syms f(x,y); hasSymType(f,'symfunOf',[x y]) возвращает логический 1.

  • 'symfunDependingOn' проверяет, symObj ли содержит неназначенную символьную функцию, которая имеет зависимость от переменных, заданных массивом vars. Для примера, syms f(x,y); hasSymType(f,'symfunDependingOn',[y x]) возвращает логический 1.

Входные переменные, заданные как символьные переменные или символьный массив.

Совет

  • Чтобы проверить, содержит ли символьное выражение конкретную подэкспрессию, используйте has функция.

Введенный в R2019a