suppose i have a=[1 0 1] and i want to flip the 2nd position bit then i can do by a([2])=~a([2]). but let if a = [1 0 1; 0 1 1; 1 0 0; 1 0 1](large matrix of binary numbers] then , how can a specific bit can be flipped.

 채택된 답변

James Tursa
James Tursa 2016년 12월 12일

1 개 추천

E.g., the bit in the (2,3) position:
a(2,3) = ~a(2,3);

댓글 수: 2

I am trying this code but getting the error
"Conversion to char from logical is not possible."
I'm using the below commands
z=(dec2bin(20))
z(1,1) = ~z(1,1);
James Tursa
James Tursa 2019년 4월 5일
편집: James Tursa 2019년 4월 5일
The ~ operator is appropriate for logical or numeric variables. For char variables that you know to contain only '0' and '1' characters, you could just do the following:
z(1,1) = '0'+'1'-z(1,1);
The expression on the rhs is double, but will be converted back into char as a result of the indexed assignment on the lhs. If you are not doing an indexed assignment, you may need to wrap the expression in the char( ) function:
char('0'+'1'-z(1,1))

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

추가 답변 (0개)

카테고리

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

질문:

2016년 12월 12일

편집:

2019년 4월 5일

Community Treasure Hunt

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

Start Hunting!

Translated by