MATLAB共同点

时间:2012-10-29 21:36:47

标签: matlab function symbolic-math

我有这个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 个答案:

答案 0 :(得分: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)