长表达式通常包含同一子表达式的多个实例。如果用缩写替换相同的子表达式,这样的表达式看起来会更短。您可以使用Sympref.
指定是否在实时脚本中使用符号表达式的缩写输出格式。
例如,解这个方程
使用解决
.
Syms.XSols =求解(SQRT(x)+ 1 / x == 1,x)
Sols =.
这解决
函数返回精确的解决方案作为符号表达式。万博 尤文图斯默认情况下,Live脚本以缩写输出格式显示符号表达式。符号偏好设置使用内部算法来选择要缩写的子表达式,其还可以包括嵌套缩写。例如,这个术语
包含子表达式,缩写为
.符号首选项设置不提供任何选项来选择要缩写的子表达式。
您可以通过设置缩写缩写输出格式'abbreviateoutpul'
偏好错误的
.返回的结果是难以阅读的长表达。
Sympref('abbreviateoutpul'、假);皂
Sols =.
您使用的首选项Sympref.
持续到您当前和未来的Matlab®会话。恢复默认值'abbreviateoutpul'
通过指定“默认”
选择。
Sympref('abbreviateoutpul'那“默认”);
SubExpr.
是另一个可以用来缩短长表达式的函数。这个函数只缩写了一个常见的子表达式,而不像Sympref.
,它不支持嵌套的缩写。万博1manbetx喜欢Sympref.
那SubExpr.
也不会让您选择要替换的子表达式。
使用第二个输入参数SubExpr.
指定替换常用子表达式压缩的变量名称。例如,替换常见的子表达式皂
有变量T.
.
[sols1,t] = subexpr(sols,'T')
sols1 =
t =
虽然Sympref.
和SubExpr.
不要提供一种选择要在解决方案中替换的子表单的方法,可以将这些子表单定义为符号变量并手动重写解决方案。
例如,定义新的符号变量a1
和a2
.
Syms.a1a2
重写解决方案万博 尤文图斯皂
按照a1
和a2
的值之前a1
和a2
避免评估皂
.
溶胶= [(1/2 * A1 + 1/3 + SQRT(3)/ 2 * A2 * 1I)^ 2;......(1/2 * A1 + 1/3 - SQRT(3)/ 2 * A2 * 1I)^ 2]
Sols =.
分配值
和
至a1
和a2
, 分别。
A1 = t + 1/(9*t)
A1 =
A2 = T - 1 /(9 * T)
a2 =
评估皂
使用subs
.结果与本例中的第一个输出相同。
sols_eval =潜艇(溶胶)
sols_eval =