如何在MATLAB中从长度为N的2D向量中删除元素

时间:2015-12-04 06:40:36

标签: matlab

假设我在MATLAB中有一个长度为5的2D向量,例如:

A=
[1 2;
 3 4;
 5 6;
 7 8;
 9 10]

这是图像中某些像素的位置。通过检查条件,例如A(:,1) < 2 && A(:,2) > 9是否要从A中移除两个点[1 2]和[9 10],并留下长度为3的新A:

newA=
[
 3 4;
 5 6;
 7 8]

2 个答案:

答案 0 :(得分:4)

我认为你想做的事情可以按照以下方式完成:

A(A(:,1) < 2 | A(:,2) > 9, :) = []

我认为你没有正确定义你的病情​​;)

答案 1 :(得分:1)

A=[1,2;3,4;5,6;7,8;9,10];
disp('Original A');
disp(A);
B=[];
j=1;
for i=1:1:size(A)

    if(A(i,1)<2 || A(i,2)>9)
    else
        B(j,:)=A(i,:);
        j=j+1;
    end

end
A=[];
A=B;
disp('updated A');
disp(A);

输出

Original A
     1     2
     3     4
     5     6
     7     8
     9    10

updated A
     3     4
     5     6
     7     8