Filter löschen
Filter löschen

Removing columns from a matrix

2 Ansichten (letzte 30 Tage)
Atreyu91
Atreyu91 am 22 Aug. 2015
Kommentiert: Star Strider am 23 Aug. 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]

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Multidimensional Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by