keep first time a value appear in a colomn and replace following ones

1 vue (au cours des 30 derniers jours)
Dam
Dam le 29 Mai 2015
Good evening, Supposing I have the following matrix A= 5*3 =[1 1 1; 1 1 1; 1 0 1 ; 1 0 0; 1 0 0] What i want to do is to keep the first zero of each colomn and to replace following zeros by 1, so that i get a matrix B =5*3= [1 1 1; 1 1 1; 1 0 1 ; 1 1 0; 1 1 1]
Thank you in advance

Réponses (2)

Roger Stafford
Roger Stafford le 29 Mai 2015
B = (A==0);
B = A + (B & cumsum(B)>1);

Jos (10584)
Jos (10584) le 29 Mai 2015
This will keep the first zero in each row of A and replace every following zero with one:
A(A==0 & cumsum(A==0,2)>1) = 1

Catégories

En savoir plus sur Get Started with MATLAB 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