Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 寻找逻辑运算符_Matlab_Binary_Logical Operators - Fatal编程技术网

Matlab 寻找逻辑运算符

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

这里有一个对我来说非常难解决的问题,我相信一定有一个优雅的解决方案:如果follow矩阵
a_mat
中的任何列正好包含一个逻辑
1
,output
1
,否则output
0

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。我已经忘了!