0

我有一个包含值 0-100 的矩阵 A。矩阵 B(行数相同,但只有两列)在其第二列中的值为 0 或 1。矩阵 C 的条目数与矩阵 A 相同,但只有 0 或 1。

我假设 C 开始时充满了零。如果 B 的第二列中有 1,那么我想在 C 中的同一行中有一个 1,对于在 A 中相应位置有值的每个位置。但是,我不知道如何得到这个。我试过使用 for 循环,但它似乎没有做我想要的。

IE

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

非常感谢任何帮助。

4

1 回答 1

1

使用 B 查找所需的行:

>> B(:, 2) == 1

ans =

     0
     0
     1

从 A 中找出可能的值:

>> A ~= 0

ans =

     1     1     1
     1     1     1
     0     1     1

and使用 ing将它们放在一起bsxfun

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

ans =

     0     0     0
     0     0     0
     0     1     1
于 2013-06-03T14:09:27.613 回答