Changing numbers in a matrix by checking values

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

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.

댓글을 달려면 로그인하십시오.

답변 (2개)

Andrei Bobrov
Andrei Bobrov 2017년 5월 20일
편집: Andrei Bobrov 2017년 5월 20일

0 개 추천

[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

Thanks for the quick response, I copied the code, but I got not the result i hoped to get, the matrix is not changing :/
I'm fixed.

댓글을 달려면 로그인하십시오.

Jan
Jan 2017년 5월 21일

0 개 추천

In Matlab >= R2016a:
index = (Ende == [1 1 0]);
Ende(index, 1) = 0;
index = (Ende == [1 1 1]);
Ende(index, 2) = 0;

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

제품

질문:

2017년 5월 20일

답변:

Jan
2017년 5월 21일

Community Treasure Hunt

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

Start Hunting!

Translated by