Main Content

isSymType

シンボリック オブジェクトが特定のタイプであるかの判別

R2019a 以降

説明

TF = isSymType(symObj,type) は、シンボリック オブジェクト symObj がタイプ type である場合は logical 1 (true) を返し、そうでない場合は logical 0 (false) を返します。入力の type は、大文字と小文字を区別する string スカラーまたは文字ベクトルでなければならず、論理式を含めることができます。たとえば、isSymType(sym('3'),'real & integer') は logical 1 を返します。

symObj がタイプ type の最上位の演算子を使用したシンボリック式である場合、isSymType(symObj,type) もまた logical 1 を返します。

TF = isSymType(symObj,funType,vars) は、symObj が、シンボリック変数 vars に依存する未割り当てのシンボリック関数であるかどうかをチェックします。

関数タイプ funType は、'symfunOf' または 'symfunDependingOn' に設定できます。たとえば、syms f(x); isSymType(f,'symfunOf',x) は logical 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)

配列の各要素がタイプ '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-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-1

expr の最上位の演算子がタイプ 'power' であるかどうかをチェックします。

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

右辺が定数である特定の方程式を選択します。

3 つのシンボリック方程式から成る配列を作成します。

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)

関数rhsを使用して各方程式の右辺を選択します。各方程式の右辺がタイプ 'constant' であるかどうかをチェックします。

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

   0   0   1

右辺が定数である簡約化された方程式を返します。

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

syms を使用して、複数の変数 f(x,y) のシンボリック関数を作成します。未割り当てのシンボリック関数 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

入力引数

すべて折りたたむ

シンボリック オブジェクト。シンボリック式、シンボリック関数、シンボリック変数、シンボリック数、またはシンボリック単位として指定します。

シンボリック型。大文字と小文字を区別するスカラー string または文字ベクトルとして指定します。入力 type には論理式を含めることができます。値のオプションは以下のとおりです。

シンボリック型カテゴリstring 値logical 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')
単位'unit' — シンボリック単位isSymType(symunit('m'),'unit')
'expression' — シンボリック式 (前述のすべてのシンボリック型を含む) isSymType(sym('x')+1,'expression')
論理式
  • 'or' — 論理 OR 演算子 |

  • 'and' — 論理 AND 演算子 &

  • 'not' — 論理 NOT 演算子 ~

  • 'xor' — 排他的論理和演算子 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]) は logical 1 を返します。

  • 'symfunDependingOn' は、symObj が、配列 vars で指定される変数に依存する未割り当てのシンボリック関数であるかどうかをチェックします。たとえば、syms f(x,y); isSymType(f,'symfunDependingOn',x) は logical 1 を返します。

入力変数。シンボリック変数またはシンボリック配列として指定します。

バージョン履歴

R2019a で導入