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

2 vues (au cours des 30 derniers jours)
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];

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 16 Juin 2013
b = cumsum(a)&flipud(cumsum(flipud(a)))

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by