2012-10-29 66 views
2

我有接收下面的輸入此MATLAB函數:MATLAB公分母

A=[0 1; 0 -1]; 
B=[0; 1] 
C=[-1 1]; 

下面是代碼:

function [ T ] = transferMAtrix(A, B, C) 
    s=sym('s'); 
    [n n] = size(A); 
    sI=s*sym(eye(n)); 
    T=sym(C)*inv(sI-sym(A))*sym(B); 

end 

而且transferMAtrix(A,B,C)返回以下輸出:

1/(s + 1) - 1/(s*(s + 1)) 

我的問題是:是否有一種方法使這些分數具有相同的分母,以便輸出結果爲:

(s-1)/(s*(s+1)) 

回答

1
>> syms s 
>> T=1/(s + 1) - 1/(s*(s + 1)) 

T = 

1/(s + 1) - 1/(s*(s + 1)) 

>> [n,d]=numden(T) 

n = 

s - 1 


d = 

s^2 + s 

>> T=n/d 

T = 

(s - 1)/(s^2 + s) 
+0

這個分數是特定於'A','B'和'C'在這個例子中的值,因此結果也是特定的......我可能在這裏是錯誤的,但我沒有認爲這是OP想要的。 –

+0

它的工作原理。非常感謝你。 :D – Casteurr

+1

只需注意:在最近的MATLAB版本中,您也可以使用'simplifyFraction(T)'。 –