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 还可清除命名变量的假设。