isSymType

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

Описание

пример

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

Если symObj является символическим выражением с самым верхним оператором типа type, затем isSymType(symObj,type) также возвращает логический 1.

пример

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

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

Примеры

свернуть все

Создайте символьное число. Проверьте, имеет ли символьное число тип 'rational'.

a = sym('1/2');
TF = isSymType(a,'rational')
TF = logical
   1

Теперь создайте символьный массив, включив символьные числа или константы в элементы массива.

N = [sym('1/2'), vpa(0.5), pi, vpa(pi), 1i]
N = 

(120.5π3.1415926535897932384626433832795i)[sym (1/2), vpa ('0,5'), sym (pi), vpa ('3,1415926535897932384626433832795'), sym (1i)]

Проверяйте, имеют ли каждый элемент массива тип 'real'.

TF = isSymType(N,'real')
TF = 1x5 logical array

   1   1   0   1   0

Проверяйте, имеют ли каждый элемент массива тип 'integer | real'.

TF = isSymType(N,'integer | real')
TF = 1x5 logical array

   1   1   0   1   0

Проверяйте, имеют ли каждый элемент массива тип 'number'.

TF = isSymType(N,'number')
TF = 1x5 logical array

   1   1   0   1   1

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

TF = isSymType(N,'constant')
TF = 1x5 logical array

   1   1   1   1   1

Определите, является ли самый верхний оператор символьного выражения определенным типом, таким как 'plus' или 'power'.

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

syms x
expr = x^2 + 2*x - 1
expr = x2+2x-1x ^ 2 + 2 * x - 1

Проверьте, является ли самый верхний оператор expr имеет тип 'plus'.

TF = isSymType(expr,'plus')
TF = logical
   1

Проверьте, является ли самый верхний оператор expr имеет тип 'power'.

TF = isSymType(expr,'power')
TF = logical
   0

Теперь выполните символьную операцию квадратного корня в выражении.

expr = sqrt(x^2 + 2*x - 1)
expr = x2+2x-1sqrt (x ^ 2 + 2 * x - 1)

Проверьте, является ли самый верхний оператор expr имеет тип 'power'.

TF = isSymType(expr,'power')
TF = logical
   1

Выберите конкретные уравнения, которые являются постоянными с правой стороны.

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

syms r(t) x(t) y(t)
eq1 = [x(t) == r(t)*cos(t), y(t) == r(t)*sin(t), r(t) == 5]
eq1 = (x(t)=cos(t)r(t)y(t)=r(t)sin(t)r(t)=5)[x (t) = = cos (t) * r (t), y (t) = = r (t) * sin (t), r (t) = = 5]

Выберите правую сторону каждого уравнения используя rhs функция. Проверяйте, имеет ли тип правая сторона каждого уравнения 'constant'.

TF = isSymType(rhs(eq1),'constant')
TF = 1x3 logical array

   0   0   1

Верните уменьшенное уравнение, которое является постоянным с правой стороны.

eq2 = eq1(TF)
eq2 = r(t)=5r (t) = = 5

Создайте символьную функцию из нескольких переменных f(x,y) использование syms. Проверьте, не назначена ли символьная функция f имеет тип 'symfun'.

syms f(x,y)
TF = isSymType(f,'symfun')
TF = logical
   1

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

TF = isSymType(f,'symfunOf',x)
TF = logical
   0

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

TF = isSymType(f,'symfunOf',[x y])
TF = logical
   1

Проверяйте, f ли зависит от переменной x.

TF = isSymType(f,'symfunDependingOn',x)
TF = logical
   1

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

переменные'variable' - символьные переменныеisSymType(sym('x'),'variable')
модули'units' - символические модулиisSymType(symunit('m'),'units')
выражения'expression' - символические выражения, включая все предыдущие символические типы isSymType(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; isSymType(x|y,'or')

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

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

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

  • isSymType(symtrue,'logicalconstant')

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

См. также

| | | |

Введенный в R2019a