2017-02-13 37 views
0

我有一个矩阵20点的行和20列,之间的比较 如果行5中的值1列取0两行和变化值

matric=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ; 
    0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1; 
    0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1; 
    0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;]; 
if (matric(5,:)==1) 
matric(1:5,1:end)=0;end 

我尝试在第二行和5比较排 如果我们有 “1”,在第2行和第5行 行2采用在0

if (matric(5,:)==matric(2,:)==1) 
matric(2,1:end)=0;end 

你有一个想法

谢谢

所需的输出是:

matric=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 
    1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 1 0 ;2row will change 
    0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1; 
    0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1; 
    0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1; % 5 row 

回答

0

您可以使用逻辑索引,以实现这一目标。现在我必须说我有点受正是你想要根据您的描述,以达到什么样的困惑,而是基于你的代码的第一条语句可以做如下:

matric(1:5,matric(5,:)==1) = 0; 

和第二会是什么样子:

matric(2,matric(5,:)==1 & matric(2,:)==1)=0;