If we have differential variable of matrix kind ( with dimention 3*3 ) and non matrix ( with dimention 1) simaltanously and as a couple ,how can we use ode45 ?

If we have only matrix kind , we can use m file of ode at first with the command of reshape (3,3) and then change it to column one.What is the solution in this case ?

P,Q,A :matrix (3*3)

Pdot= A*P +P*A’ +Q K=P*[1 0 0] xdot(1) =f(x(1),x(2),x(3)) +k(1)*x(1) xdot(2)=g(x(1),x(2),x(3)) +k(2)*x(2) xdot(3)=h(x(1) ,x(2),x(3)) +k(3)*x(3) x0=[ xa;xb;xc] P0=x01
Example (only matrix differential equation) :

%-----MAIN M-FILE--------------

Code:

`clear all`

%-----VARIABLE SET-UP--------------

A = [0 1 0; 0 0 5; 1 2 3];

Q = [1 0 0; 0 0.5 0; 0 0 0.9];

%-----TO RUN and PLOT ODE SOLUTION--------------

t01= 0;

tf1=30;

tspan1 = LINSPACE(t01, tf1);

X01=zeros(3);

[Time1,X1] = ode45(@(t,X) odefuncare(t,X,A,Q),tspan1,X01);

plot(Time1,X1)

%-------ODEFUNCTION------------------

function dxdt = odefuncare(t,X,A,Q)

X = reshape(X,3,3); %converting X from a column vector generated by ode45 into a 3 x 3Matrix

dxdt=A*x +x*A’ +Q

dxdt = dxdt(:); %converting dxdt into a column vector as expected by ode45