Here's a helpful image from MATLAB's documentation for a MIMO state-space system:
System Equation:
Image:
To view the image and learn more about MIMO state-space models, use the following command in the MATLAB command window:
web(fullfile(docroot, 'control/ug/mimo-state-space-models.html'))
From the image, it's clear that the number of inputs and outputs determines the number of columns in matrix B and the number of rows in matrix C, respectively. The number of states corresponds to the number of rows in A and the number of columns in C. While the inputs and outputs are fixed, there's flexibility in the number of states. Establishing a relation between inputs and outputs through the system's governing equations will help identify the minimum number of variables required to define the system completely, which are considered the states. The same reasoning also applies to a non-linear system.
For instance, consider the 6DOF (Euler Angles) block:
web(fullfile(docroot, 'aeroblks/6dofeulerangles.html'))
This block takes forces and moments as inputs and provides several variables as outputs, but has exactly 12 states (Xe, Ye, Ze, U, v, w, phi, theta, psi, p, q, r) as outlined in the State Attributes section of the documentation page.