Make true all the false rows of a column of a matrix which are in between the first true and the last true row

5 visualizzazioni (ultimi 30 giorni)
The first true element of column 1 of matrix a is at row 2. The last true element of column 1 of matrix a is at row 9. I want to get a matrix b whose 1st column will start with false, from row 2 to row 9 will b true and row 10 will be false. Likewise, I want to do the same for the rest of the columns of matrix a.
Example:
a =[
0 0 1 0
1 0 0 0
1 0 0 1
1 0 0 1
1 1 1 0
0 0 0 1
1 1 1 0
0 1 1 0
1 0 0 0
0 0 0 1];
b =[
0 0 1 0
1 0 1 0
1 0 1 1
1 0 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 0 0 1
0 0 0 1];

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 16 Giu 2013
b = cumsum(a)&flipud(cumsum(flipud(a)))

Più risposte (0)

Categorie

Scopri di più su Creating and Concatenating Matrices 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