Azzera filtri
Azzera filtri

Removing columns from a matrix

1 visualizzazione (ultimi 30 giorni)
Atreyu91
Atreyu91 il 22 Ago 2015
Commentato: Star Strider il 23 Ago 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]

Risposta accettata

Star Strider
Star Strider il 22 Ago 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 Commenti
Atreyu91
Atreyu91 il 23 Ago 2015
Do you know how to reverse this process and add the zeros back into the matrix?
Star Strider
Star Strider il 23 Ago 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.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Multidimensional Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by