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
你可以做'B(A == 0)= 0;'要更短。我会说这更明确地说明你想要做什么而不是使用'〜逻辑(a)'。 – rayryeng 2015-04-01 00:15:58
你也可以做一个元素乘法'。*'。 – knedlsepp 2015-04-01 00:20:45