2017-02-13 40 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;