Matlab 寻找逻辑运算符
这里有一个对我来说非常难解决的问题,我相信一定有一个优雅的解决方案:如果follow矩阵Matlab 寻找逻辑运算符,matlab,binary,logical-operators,Matlab,Binary,Logical Operators,这里有一个对我来说非常难解决的问题,我相信一定有一个优雅的解决方案:如果follow矩阵a_mat中的任何列正好包含一个逻辑1,output1,否则output0 a_mat=[0 1 1 0; ... 1 0 1 0; ... 0 1 0 0]; 解决方案: sol_mat=[1 0 0 0]; 有没有一种“简单”的方法可以使用二进制运算符(包括xor等)来解决这个问题?我在前面的类似问题中使用了setxor(),但是无法使它仅使用一个输入参数工作。可以使用su
a_mat
中的任何列正好包含一个逻辑1
,output1
,否则output0
a_mat=[0 1 1 0; ...
1 0 1 0; ...
0 1 0 0];
解决方案:
sol_mat=[1 0 0 0];
有没有一种“简单”的方法可以使用二进制运算符(包括xor等)来解决这个问题?我在前面的类似问题中使用了
setxor()
,但是无法使它仅使用一个输入参数工作。可以使用sum
来完成:
sol_mat = sum(a_mat, 1) == 1
它在matlab中的运行速度足够快。您可以使用
sum
:
sol_mat = sum(a_mat, 1) == 1
它在matlab中的运行速度足够快。你能沿着列求和,然后进行比较吗?是的,我只是想知道这是否可以在保留二进制向量/运算符的情况下完成-我猜这有一些性能优势,我猜这只是一个学术挑战我不认为有比
sum()更好的方法==1
。“保留二进制”不太可能带来好处。二进制运算符是all
和any
(相当于一列中的and或or所有元素),没有1个。您能沿着列求和,然后进行比较吗?是的,我只是想知道这是否可以在二进制向量/运算符内完成-我猜这在性能上有一些好处,我猜这只是一个学术挑战。我不认为有比sum()==1
更好的方法。“保留二进制”不太可能带来好处。二进制运算符是all
和any
(相当于列中的and或or所有元素),没有1个。或者sum(a_mat,1)==1
在保险箱上side@LuisMendo:D这不是你个人信息的一部分吗?@rayryeng-Heh。我已经忘了!或sum(a_mat,1)==1
在保险柜上side@LuisMendo:D这不是你个人信息的一部分吗?@rayryeng-Heh。我已经忘了!