2015-04-01 49 views
0

我想根據邏輯數組將元素的一些元素轉換爲零。作爲索引的邏輯數組在MATLAB中將元素轉換爲零

假設我們有一個隨機5 x 5矩陣:

b = 

0.0344 0.1869 0.7547 0.1190 0.2238 
0.4387 0.4898 0.2760 0.4984 0.7513 
0.3816 0.4456 0.6797 0.9597 0.2551 
0.7655 0.6463 0.6551 0.3404 0.5060 
0.7952 0.7094 0.1626 0.5853 0.6991 

和我有零和一的具有相同尺寸的數組:

a = 

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

a(logical(b))給我,我要找的元素,但是以矢量形式:

ans = 

0.4387 
0.3816 
0.1869 
0.4456 
0.6463 
0.7547 
0.2760 
0.6551 
0.1626 
0.4984 
0.9597 
0.5853 
0.2551 
0.5060 

我怎樣才能得到下面的矩陣呢?

0   0.1869 0.7547 0   0 
0.4387 0   0.2760 0.4984 0.7513 
0.3816 0.4456 0   0.9597 0.2551 
0   0.6463 0.6551 0   0.5060 
0   0   0.1626 0.5853 0 

回答

2

我剛剛意識到在另一個問題上有答案。

設置b(~logical(a)) = 0的作品。

(因爲問題是措辭稍有不同只是保持這個位置。)

+3

你可以做'B(A == 0)= 0;'要更短。我會說這更明確地說明你想要做什麼而不是使用'〜邏輯(a)'。 – rayryeng 2015-04-01 00:15:58

+2

你也可以做一個元素乘法'。*'。 – knedlsepp 2015-04-01 00:20:45

相關問題