如何在MATLAB中对整列进行逻辑索引

时间:2016-03-31 02:28:33

标签: arrays matlab

给定逻辑列向量(大小nx 1)v和数组a(大小为mxn)如何生成一个新数组,其中包含a中的所有列所述列(1 ... n)的数字索引在v的相应位置为1。

例如,如果v

1
0
0
1

a

1 4 7 10
2 5 8 11
3 6 9 12

新阵列将是

1 10
2 11
3 12

因为v的第一个和第四个元素是1(真),所以新数组应该包含a的第一和第四列。

我尝试过很多涉及正常逻辑索引和转置的东西,但我无法让它工作。感谢所有帮助

1 个答案:

答案 0 :(得分:2)

您希望使用逻辑索引来选择列并选择所有行。在下面的示例中,我已明确将v转换为逻辑,以防它 已经逻辑矩阵。

new = a(:, logical(v))

   1    10
   2    11
   3    12