主要内容

subexpr

重写符号表达式的常见的子表达式

描述

例子

(r,σ= subexpr (expr)重写的符号表达式expr公共子表达式,用这个公共子表达式的符号变量σ。输入表达式expr不能包含的变量σ

例子

(r,var)= subexpr (expr。”var”)替代品的公共子表达式var。输入表达式expr不能包含符号变量var

例子

(r,var)= subexpr (expr,var)相当于(r, var) = subexpr (expr“var”),除了具有象征意义的变量var必须已经存在于MATLAB®工作区。

这个语法覆盖变量的值var与常见的子表达式expr。为了避免覆盖的价值var,将另一个变量的名字作为第二个输出参数。例如,使用[r, var1] = subexpr (expr var)

例子

全部折叠

解下列方程。解决方案金宝搏官方网站很长表达式。显示解决方案,把分号结束的时候金宝搏官方网站解决命令。

信谊一个bcdx金宝搏官方网站解决方案=解决(* x ^ 3 + b * x ^ 2 + c * x + d = = 0, x,“MaxDegree”3);

这些长表达式有共同的子表达式。缩短表情,缩写公共子表达式使用subexpr。如果你不指定要使用的变量的缩写作为第二个输入参数subexpr,然后subexpr使用变量σ

(r,σ)= subexpr(解决方案)金宝搏官方网站
r =

( σ - - - - - - b 3 一个 - - - - - - σ 2 σ σ 2 2 σ - - - - - - b 3 一个 - - - - - - σ 2 - - - - - - σ 1 σ 2 2 σ - - - - - - b 3 一个 - - - - - - σ 2 + σ 1 ) 在哪里 σ 1 = 3 σ + σ 2 σ 2 σ 2 = c 3 一个 - - - - - - b 2 9 一个 2

σ=

d 2 一个 + b 3 27 一个 3 - - - - - - b c 6 一个 2 2 + c 3 一个 - - - - - - b 2 9 一个 2 3 - - - - - - b 3 27 一个 3 - - - - - - d 2 一个 + b c 6 一个 2 1 / 3

解二次方程。

信谊一个bcx金宝搏官方网站解决方案=解决(* x ^ 2 + b * x + c = = 0, x)
金宝搏官方网站解决方案=

( - - - - - - b + b 2 - - - - - - 4 一个 c 2 一个 - - - - - - b - - - - - - b 2 - - - - - - 4 一个 c 2 一个 )

使用信谊创建符号变量年代,然后用这个变量替换公共子表达式的结果。

信谊年代[abbr金宝搏官方网站Solutions s] = subexpr(解决方案,s)
abbr金宝搏官方网站Solutions =

( - - - - - - b + 年代 2 一个 - - - - - - b - - - - - - 年代 2 一个 )

s =
                       
                        
                         
                          
                           
                            
                             
                              
                               
                                b
                              
                              
                               
                                2
                              
                             
                             
                              - - - - - -
                             
                              
                               
                                4
                               
                               
                               
                                一个
                               
                               
                               
                                c
                              
                             
                            
                           
                          
                         
                        
                       

另外,使用“年代”指定缩写变量。

[abbr金宝搏官方网站Solutions s] = subexpr(解决方案,“年代”)
abbr金宝搏官方网站Solutions =

( - - - - - - b + 年代 2 一个 - - - - - - b - - - - - - 年代 2 一个 )

s =
                       
                        
                         
                          
                           
                            
                             
                              
                               
                                b
                              
                              
                               
                                2
                              
                             
                             
                              - - - - - -
                             
                              
                               
                                4
                               
                               
                               
                                一个
                               
                               
                               
                                c
                              
                             
                            
                           
                          
                         
                        
                       

这两个语法覆盖变量的值年代与常见的子表达式。例如,因此,不能替代年代有一些价值。

潜艇(abbrSo金宝搏官方网站lutions年代,0)
ans =

( - - - - - - b + 年代 2 一个 - - - - - - b - - - - - - 年代 2 一个 )

为了避免覆盖变量的值年代使用另一个变量名称,第二个输出参数。

信谊年代[abbr金宝搏官方网站Solutions t] = subexpr(解决方案,“年代”)
abbr金宝搏官方网站Solutions =

( - - - - - - b + 年代 2 一个 - - - - - - b - - - - - - 年代 2 一个 )

t =
                       
                        
                         
                          
                           
                            
                             
                              
                               
                                b
                              
                              
                               
                                2
                              
                             
                             
                              - - - - - -
                             
                              
                               
                                4
                               
                               
                               
                                一个
                               
                               
                               
                                c
                              
                             
                            
                           
                          
                         
                        
                       
潜艇(abbrSo金宝搏官方网站lutions年代,0)
ans =

( - - - - - - b 2 一个 - - - - - - b 2 一个 )

输入参数

全部折叠

长表达式包含公共子表达式,指定为一个象征性的表达或功能。

变量用于取代公共子表达式,指定为一个特征向量或符号变量。

subexpr如果输入表达式将抛出一个错误expr已经包含了var

输出参数

全部折叠

表达缩写代替公共子表达式,作为符号表达式或函数返回。

变量用于缩写,作为一个符号变量返回。

版本历史

之前介绍过的R2006a