Borrar filtros
Borrar filtros

Removing columns from a matrix

1 visualización (últimos 30 días)
Atreyu91
Atreyu91 el 22 de Ag. de 2015
Comentada: Star Strider el 23 de Ag. de 2015
Can anyone please how me how to remove columns from a matrix?
an example of what I am trying to do is remove the 4 columns of this 2x6 matrix:
[a,0,0,0,0,b; c,0,0,0,0,d]
to
[a,b;c,d]

Respuesta aceptada

Star Strider
Star Strider el 22 de Ag. de 2015
One possibility:
[a,b,c,d] = deal(3,5,7,13); % Populate Variables
M = [a,0,0,0,0,b; c,0,0,0,0,d];
Mresult = reshape(M(M~=0), size(M,1), [])
Mresult =
3 5
7 13
  3 comentarios
Atreyu91
Atreyu91 el 23 de Ag. de 2015
Do you know how to reverse this process and add the zeros back into the matrix?
Star Strider
Star Strider el 23 de Ag. de 2015
My pleasure!
You have to know the number of zeros you want to add. That information was lost in the first step. Probably the easiest way to do it though would be something like this:
Mreverse = zeros(2,6);
Ix = sub2ind(size(Mreverse), [1 1 2 2], [1 6 1 6]);
Mreverse(Ix) = [a b c d];
There are probably a number of ways to do it, this is one.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Multidimensional Arrays 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