How to XOR two cells from the same cell array?
이전 댓글 표시
Hello,
I have one array of size 1x1024. I want to XOR each cell of the array. The first cell remains the same.It is as follows
Let T represent the position of each cell, then
CellT` = {Cell T XOR Cell(T-1) for T=2..1024
Cell T for T=1
Lets consider a 1x10 array.It is of the following form.
X= ['0000000000000001' '0000000000000010' '0000000000000011' '0000000000000100' '0000000000000101' '0000000000000110' '0000000000000111' '0000000000001000' '0000000000001001' '0000000000001010']
So I need to XOR the adjacent elements except the first one. Please help thanks in advance.
댓글 수: 1
It sounds that your array with cells is just a plain matlab matrix, in which case you'd be better off calling the cells elements
Cell arrays, whose elements are cells are something very different in matlab.
채택된 답변
추가 답변 (1개)
Guillaume
2015년 3월 18일
If you are operating on strings of '0' and '1', then the xor operation is the same as the ~= operation plus a conversion back to string.
binstrxor = @(binstr1, binstr2) char('0' + (binstr1 ~= binstr2));
Thus:
X = {'0000000000000001' '0000000000000010' '0000000000000011' '0000000000000100' '0000000000000101' '0000000000000110' '0000000000000111' '0000000000001000' '0000000000001001' '0000000000001010'};
Xxor = cellfun(binstrxor, X(1:end-1), X(2:end), 'UniformOutput', false)
Note that the strings must be the same length (same number of bits) for ~= to work.
댓글 수: 1
Michael Haderlein
2015년 3월 18일
+1 - that's shorter than my solution.
카테고리
도움말 센터 및 File Exchange에서 Matrices and Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!