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

Arrays 如何在MATLAB中对整列进行逻辑索引,arrays,matlab,Arrays,Matlab,给定一个逻辑列向量(大小n x 1)v和一个数组a(大小m x n),如何生成一个由a中所有列组成的新数组,其中所述列(1…n)的数字索引在v中的相应位置为1 例如,如果v是 1 0 0 1 1 4 7 10 2 5 8 11 3 6 9 12 而a 1 0 0 1 1 4 7 10 2 5 8 11 3 6 9 12 新阵列将是 1 10 2 11 3 12 因为v的第一个和第四个元素是1(true),所以新数组应该包含a的第一列和第四列 我已经尝试了一系列涉及正常逻辑索引和转置的事

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

例如,如果
v

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

1
0
0
1
1 4 7 10
2 5 8 11
3 6 9 12
新阵列将是

1 10
2 11
3 12
因为
v
的第一个和第四个元素是1(true),所以新数组应该包含
a
的第一列和第四列


我已经尝试了一系列涉及正常逻辑索引和转置的事情,但我无法让它工作。非常感谢所有帮助

如果要使用逻辑索引选择列并选择所有行,请参阅。在下面的示例中,我明确地将
v
转换为逻辑矩阵,以防它已经不是逻辑矩阵

new = a(:, logical(v))

   1    10
   2    11
   3    12

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

new = a(:, logical(v))

   1    10
   2    11
   3    12

哇,我尝试了与此完全相同的方法,只是我切换了行和列参数,所以很明显它不起作用。非常感谢,这太完美了。哇,我尝试了与此完全相同的方法,只是我切换了行和列参数,所以很明显它不起作用。非常感谢,这太完美了。