Changing numbers in a matrix by checking values
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentar
Jan
am 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.
Antworten (2)
Andrei Bobrov
am 20 Mai 2017
Bearbeitet: Andrei Bobrov
am 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),:);
2 Kommentare
Jan
am 21 Mai 2017
In Matlab >= R2016a:
index = (Ende == [1 1 0]);
Ende(index, 1) = 0;
index = (Ende == [1 1 1]);
Ende(index, 2) = 0;
0 Kommentare
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!