# Extract matrices out of a symbolic matrix

2 visualizaciones (últimos 30 días)
Ahmed Hossam el 20 de Abr. de 2017
Comentada: Ahmed Hossam el 28 de Abr. de 2017
Let's assume I have a matrix which looks something like:
Mtx = [2,3*x;4*x^2,1]
Is it "symbolically" possible to get 3 matrices out of this, which look like:
Mtx1 = [2,0;0,1]
Mtx2 = [0,3*x;0,0]
Mtx3 = [0,0;4*x^2,0]
Is there a function, that can do this or should I do it manually?
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Andrew Newell el 20 de Abr. de 2017
Editada: Andrew Newell el 20 de Abr. de 2017
It looks like you are trying to extract the diagonal, upper triangular and lower triangular parts of the matrix. These commands will do it for larger matrices as well:
Mtx1 = diag(diag(Mtx));
Mtx2 = triu(Mtx,1);
Mtx3 = tril(Mtx,-1);
##### 3 comentariosMostrar 1 comentario más antiguoOcultar 1 comentario más antiguo
Andrew Newell el 20 de Abr. de 2017
O.k., for the example you have given, this will do it:
syms x
Mtx = [2,3*x;4*x^2,1];
Mt3 = diff(Mtx,x,2)*x^2/2;
Mt2 = diff(Mtx-Mt3,x,1)*x;
Mt1 = Mtx-Mt2-Mt3;
It would be straightforward to generalize this to higher derivatives, remembering that for the nth derivative you have to divide by n factorial.
Ahmed Hossam el 28 de Abr. de 2017
you're right!

Iniciar sesión para comentar.

### Categorías

Más información sobre Numeric Solvers en Help Center y File Exchange.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by