Ob = obsv(sys)
with n columns and np rows.
Ob = obsv(sys.A,sys.C)
The model is observable if Ob has full rank n.
Determine if the pair
A = 1 1 4 -2 C = 1 0 0 1
is observable. Type
Ob = obsv(A,C); % Number of unobservable states unob = length(A)-rank(Ob)
These commands produce the following result.
unob = 0
obsv is here for educational purposes and is not recommended for serious control design. Computing the rank of the observability matrix is not recommended for observability testing. Ob will be numerically singular for most systems with more than a handful of states. This fact is well documented in the control literature. For example, see section III in http://lawww.epfl.ch/webdav/site/la/users/105941/public/NumCompCtrl.pdf