繁体   English   中英

使用xor的涉及矩阵的操作的简写

[英]Shorthand for an operation involving matrices, using xor

我有2个矩阵

A = [a b; c d];
B = [e f; g h];

其中a,b,c,d,e,f,g,h01

我想要做

[(a*e) xor (b*g) (a*f) xor (b*h);
 (c*e) xor (d*g) (c*f) xor (d*h)];

这个操作有没有MATLAB命令?

这是一个使用矩阵乘法的解决方案:

result = A*B ==1;

说明:

你的操作与矩阵乘法相同,只是在矩阵乘法中我们使用sum操作而不是xor是矩阵乘法:

[(a*e) + (b*g) (a*f) + (b*h);
 (c*e) + (d*g) (c*f) + (d*h)];

使用xor我们想看看两个操作数是否不同,如果我们求和两个二进制数,可能的输出是[0 1 2]= [0+0 1+0 1+1]所以我们可以看到只有两个操作数是不同的它们的和为1,所以我们计算矩阵乘法并检查它是否等于1。

以下是使用预先计算的线性索引的解决方案:

result = A([1 1;2 2]) & B([1 3;1 3]) ~= A([3 3;4 4]) & B([2 4;2 4]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM