-3

例如

A=[0 0 0;
   1 1 1;
   1 0 0; 
   1 1 0; 
   0 0 1];

应用功能后

A=[1 1 0;
   1 1 0;
   1 1 0; 
   1 0 1];

一排一零,其余为一。如果全部为一,则随机放置一零。如果找到多个零,则随机取一并将所有零转换为一。

4

1 回答 1

0

如果您要问的是一种检测每一行包含单个零的方法,并且其余行元素都等于 1,那么您可以尝试这个。如果要测试的矩阵是mxn矩阵A,那么

 sum(A == 1,2)

应该产生一个(m x 1)所有元素都等于 的矩阵n-1。类似地,如果 的每一行A只有一个零,那么

sum(A == 0,2)

应该返回一个(m x 1)元素都等于 1 的矩阵。然后你需要的矩阵类型应该满足

sum(sum(A == 1,2) == (n-1)) = m

sum(sum(A == 0,2) == (n-1)) = m

我不确定这是否是您实际要问的,因为您的问题很不清楚,但这确实可以满足问题标题本身的要求(当然取决于您对效率的定义)。

于 2013-02-22T23:16:39.987 回答