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'
我的元胞数组,它包含如下值 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'