sym
创建符号变量、表达式、函数、矩阵
语法
说明
创建一个 A
= sym("a"
,[n1 ... nM]
)n1
×...
×nM
符号数组,该数组中填充的元素是自动生成的。例如,A = sym("a",[1 3])
创建行向量 A = [a1 a2 a3]
。生成的元素 a1
、a2
和 a3
不会出现在 MATLAB® 工作区中。对于多维数组,这些元素具有前缀 a
,后跟元素的索引并使用 _
作为分隔符,例如 a1_3_2
。
sym(___,
创建一个符号变量或数组,并设置该变量或所有数组元素属于 set
)set
的假设。此处,set
可以是 "real"
、"positive"
、"integer"
或 "rational"
。您也可以通过指定字符串数组或字符向量元胞数组来组合多个假设。例如,通过将 set
指定为 ["positive" "rational"]
或 {'positive','rational'}
来假设一个正有理数值。
sym(___,"clear")
清除对符号变量或数组设置的假设。除了组合使用 "clear"
和 set
之外,您可以在上述任何语法的输入参量之后指定 "clear"
。您不能在对 sym
的同一个函数调用中既设置又清除假设。
示例
输入参数
输出参量
提示
像
pi = sym(pi)
和delta = sym("1/10")
这样的语句会创建符号数,以避免用浮点数近似表示pi
和1/10
的值所固有的误差。以这种方式创建的pi
将符号数存储在名为pi
的工作区变量中,该变量会暂时替换同名的内置数值函数。使用clear pi
可恢复pi
的浮点表示形式。sym
始终将字符向量输入中的i
视为标识符。要输入虚数i
,请改用1i
。clear x
不会清除关于该符号对象的假设,例如实数、正数或者由assume
、sym
或syms
设置的任何假设。要删除假设,请使用以下选项之一:assume(x,"clear")
会删除影响x
的所有假设。clear all
会清除 MATLAB 工作区中的所有对象并重置符号引擎。assume
和assumeAlso
在对变量设置假设方面提供更大的灵活性。
当用符号数替换数值向量或矩阵的一个或多个元素时,MATLAB 会将该数字转换为双精度数。
A = eye(3); A(1,1) = sym(pi)
A = 3.1416 0 0 0 1.0000 0 0 0 1.0000
您无法将数值向量或矩阵的元素替换为符号变量、表达式或函数,因为这些元素无法转换为双精度数。例如,
A(1,1) = sym("a")
会抛出错误。当您使用语法
A = sym("a",[n1 ... nM])
时,sym
函数仅会将符号数组A
赋值给 MATLAB 工作区。要将A
的自动生成元素赋值给 MATLAB 工作区,请改用syms
函数。例如,syms a [1 3]
会在 MATLAB 工作区中创建行向量a = [a1 a2 a3]
以及符号变量a1
、a2
和a3
。
替代功能
创建符号变量的替代方法
要在一次函数调用中创建多个符号变量,请使用 syms
。使用 syms
还可清除命名变量的假设。