setxor 具有整个单元格数组值的单元格数组的单个值?

setxor single value of cell array with whole cell array values?

我的元胞数组,它包含如下值 a=['10100011''11000111'00010111'11100011']; 我想应用异或运算; 我用了setxor。我想将数组的第一个值即 10100011 异或到元胞数组的所有值,所需的输入和输出如下!

**setxor(10100011, 10100011) =00000000%(first value xor result with first value)    
setxor(10100011 , 11000111) =1100100%(first val xor result with second value)   
setxor(10100011, 00010111 )=10110100%(first val xor result with third value)   
setxor(10100011 ,11100011)=1000000 %(first val xor result with forth value)**

但我不知道如何传递完整的单元格数组和单个值,我尝试使用 cellfun 但它不起作用。我想要 setxor(first val of my cell array , all vals of my cell array) 因为我的单元格数组是 16x16。非常感谢您的帮助。

如果您从如下数据开始:

A = [163 215 9 131 248 72 246 244 179 33 21 120 153 177 175 249; ...
     231 45 77 138 206 76 202 46 82 149 217 30 78 56 68 40];

并且您想将第一个条目的位与所有其他条目进行异或,您不必使用 dec2bin. You can just use bitxor 转换 A,然后根据需要格式化结果(十进制或二进制字符串元胞数组):

>> decOut = bitxor(A(1), A)

decOut =

     0   116   170    32    91   235    85    87    16   130   182   219    58    18    12    90
    68   142   238    41   109   239   105   141   241    54   122   189   237   155   231   139

>> binOut = reshape(cellstr(dec2bin(decOut)), size(A))

binOut =

  2×16 cell array

  Columns 1 through 10

    '00000000'    '01110100'    '10101010'    '00100000'    '01011011'    '11101011'    '01010101'    '01010111'    '00010000'    '10000010'
    '01000100'    '10001110'    '11101110'    '00101001'    '01101101'    '11101111'    '01101001'    '10001101'    '11110001'    '00110110'

  Columns 11 through 16

    '10110110'    '11011011'    '00111010'    '00010010'    '00001100'    '01011010'
    '01111010'    '10111101'    '11101101'    '10011011'    '11100111'    '10001011'