2011-03-10 74 views
3

我有兩個大小相同的矩陣(x1x2)。我想在x1中使用等於零的元素將相同的元素置於x2中爲零。設置指定的索引爲零

非工作的解決方案我必須得如下:

[i j] = find(x1 == 0); 
x2(i,j) = 0; 

我也得到了一個可行的解決方案是:

[i j] = find(x1 == 0); 
for n=1:length(i) 
    x2(i(n),j(n)) = 0; 
end 

的感謝!

+0

而你的問題是? – ilalex 2011-03-10 11:03:17

回答

2

嘗試x2(x1 == 0) = 0。例如:

 
>> x1 = rand(5, 5) 

x1 = 

    0.4229 0.6999 0.5309 0.9686 0.7788 
    0.0942 0.6385 0.6544 0.5313 0.4235 
    0.5985 0.0336 0.4076 0.3251 0.0908 
    0.4709 0.0688 0.8200 0.1056 0.2665 
    0.6959 0.3196 0.7184 0.6110 0.1537 

>> x2 = randi(2, 5, 5) - 1 

x2 = 

    0  1  1  0  1 
    0  1  0  0  1 
    1  1  1  1  0 
    0  1  1  1  1 
    1  0  0  0  0 

>> x1(x2 == 0) = 0 

x1 = 

     0 0.6999 0.5309   0 0.7788 
     0 0.6385   0   0 0.4235 
    0.5985 0.0336 0.4076 0.3251   0 
     0 0.0688 0.8200 0.1056 0.2665 
    0.6959   0   0   0   0 
+0

甜!謝謝! – Johan 2011-03-10 11:41:14