Changing numbers in a matrix by checking values
Afficher commentaires plus anciens
Dear all,
I have the following 3x50 Matrix wiht true and false values:
Ende =
0 1 0
0 0 0
0 1 0
0 0 1
1 0 1
0 0 1
1 0 1
0 0 1
1 0 1
1 1 1
0 0 1
0 1 0
0 0 0
0 0 1
0 0 1
0 1 0
1 1 0
0 1 0
0 1 0
0 0 1
0 0 0
0 0 0
1 0 1
0 0 0
1 0 1
1 0 1
1 0 1
0 1 0
0 1 0
1 0 1
0 0 0
0 0 1
1 1 1
0 1 0
0 0 1
1 1 1
0 0 1
0 1 0
0 1 0
0 0 0
0 1 0
0 1 0
0 0 0
0 0 1
0 0 1
0 0 1
1 0 1
0 0 1
0 0 0
0 1 0
In every line with 1 1 0 or 1 1 1: If in column 3 the value is 0 than I need to change the value in column 2 into 0 --> I want to make in the matrix out of 1 1 0 , a new updated line 0 1 0. Same for 1 1 1 --> I want to change those lines into 1 0 1.
Is anyone around who could help on this?
Cheers, Felix
1 commentaire
Jan
le 21 Mai 2017
change the value in column 2 into 0 --> I want to make in the
matrix out of 1 1 0 , a new updated line 0 1 0
This changes the first column, not the second one.
Réponses (2)
Andrei Bobrov
le 20 Mai 2017
Modifié(e) : Andrei Bobrov
le 20 Mai 2017
[EDIT]
a = [0 1 0;1 0 1];
[l0,ii] = ismember(Ende,[1 1 0;1 1 1],'rows');
Ende(l0,:) = a(ii(l0),:);
Jan
le 21 Mai 2017
In Matlab >= R2016a:
index = (Ende == [1 1 0]);
Ende(index, 1) = 0;
index = (Ende == [1 1 1]);
Ende(index, 2) = 0;
Catégories
En savoir plus sur Logical dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!