2013-06-03 48 views
0

我有一個矩陣A,其中包含值0-100。矩陣B(行數相同,但只有兩列)在其第二列中的值爲0或1。 Matrix C具有與Matrix A相同的條目數量,但僅爲0或1.Matlab - 使用兩個矩陣的值來改變第三個值

我假設C開始充滿零。如果B的第二列有1,那麼我想在C的同一行中有一個1,對於A中對應位置中有值的每個位置。但是,我不能計算出得到這個。我試過使用for循環,但它似乎沒有做我想做的事。

A = 
10 10 10 
10 10 10 
0 20 10 

B = 
1 0 
2 0 
3 1 

我想有C:

C = 
0 0 0 
0 0 0 
0 1 1 

非常感謝您的幫助。採用B

回答

1

查找需要的行:

>> B(:, 2) == 1 

ans = 

    0 
    0 
    1 

從A查找可能的值:

>> A ~= 0 

ans = 

    1  1  1 
    1  1  1 
    0  1  1 

通過and把它放在一起制將bsxfun

>> bsxfun(@and, B(:, 2) == 1, A ~= 0) 

ans = 

    0  0  0 
    0  0  0 
    0  1  1 
+0

'bsxfun'規則!!!! – Shai