根据矩阵的原始值更改矩阵的两列中的值

时间:2017-09-18 09:50:22

标签: arrays matlab matrix

我有一个矩阵a

a=[0  0  0  0  1
   0  0  0  1  0
   0  0  1 -1 -1
   0  1  0 -1 -1
   1 -1 -1 -1 -1];

我想根据第2列和第3列中的值,从矩阵b创建新矩阵a

  • 如果第二列和第三列是0 0(如前两行的情况),那么我想将这些值更改为10 9

  • 如果第二列和第三列是0 1(如第三行的情况),那么我想将这些值更改为12 9

所以输出将是

b=[0 10  9  0  1
   0 10  9  1  0
   0 12  9 -1 -1
   0  1  0 -1 -1
   1 -1 -1 -1 -1];

1 个答案:

答案 0 :(得分:2)

您可以使用逻辑索引实现所需目标。例如,第一个可以实现如下:

idx = a(:, 2) == 0 & a(:, 3) == 0;
a(idx, 2) = 10;
a(idx, 3) = 9;

我认为你应该能够自己做第二个。

查看Getting Started教程可能会很有趣。