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