假设我们有这样的矩阵 A :
10 5 8 6 2
A= 9 3 5 4 1
12 5 7 2 6
如何选择 A 的子集,其中没有第三列(例如)? 像这样:
10 5 6 2
B = 9 3 4 1
12 5 2 6
我知道我可以说:
B = A(:,[1 2 4 5]);
但我需要更好的方法
答案 0 :(得分:6)
您可以使用
B = A(:,1:size(A,2)~=n);
将n
作为选定列(请参阅@freude的回答)。
他的解决方案在任何情况下都可以正常工作,但是位置索引(如此处)应该比他的方法更快。
答案 1 :(得分:4)
如果我们假设要删除的列是n,则显示为:
B = A(:,[1:n-1 n+1:end]);
答案 2 :(得分:2)
另一种方法是复制,然后通过将其设置为空来删除您不想要的位:
B = A;
B(:,n) = [];
我提到这一点是因为如果您不需要B
作为新矩阵但只想从A
中取出一列,这是最简单/最容易阅读的方式这样做。