1

我有一个向量 [1 2 3 4 ... 100] 和另一个存储我想删除的数字的向量,例如 [2 3 4]。删除后,原始向量中的数字应该映射到另一个顺序,例如,1->1、5->2、6->3等。有没有有效的方法来做到这一点?非常感谢!

4

2 回答 2

1

我会使用setdiff

% original vector
A = 1:100;

% elements to be removed
B = [2 3 4 18 21];

% new order (indices)
C = randperm(numel(A)-numel(B));

% Step 1) remove the elements
[D,I] = setdiff(A,B); % ordered
D = A(I);             % restore original order

% Step 2) re-order the elements
D = D(C)
于 2013-06-04T05:11:58.137 回答
0

你可以做:

  original_vector = 1:100;

  delete_vector = [2 3 4];

  for ii = 1:length(delete_vector)
        original_vector(original_vector==delete_vector(ii)) = [];
  end
于 2013-06-04T05:18:00.740 回答