Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我有一个数组S ,它具有一些唯一的元素。我想添加数组N中尚未在S元素。
一种语法上简单的方法是: S = union( S, N, 'stable' ); 我发现使用ismember手动添加可能会比较慢,而使用隐式扩展会更快: % ismember approach S = [S; N(~ismember(N,S))]; % imp. expansion approach S = [S; N(~any(S(:)==N(:).',1))]; 但是,在循环内执行此操作仍然感觉很脏,并且隐式扩展对于大型输入而言可能会非常昂贵。 有更高效的替代方案吗? 如果有帮助,我们可以假设S和N仅包含整数。但是,我们不能假设S是排序的,从N追加的新元素可以是任何正整数。 最小示例: Ntest = [1 2 3 4 2 5 3 6 1 5 7 9]; S = []; for ii = 1:3 N = Ntest(ii,:); S = union(S,N,'stable'); end % S = [ 1; 2; 3; 4; 5; 6; 7; 9 ] 在实际情况下,我Ntest上面的Ntest那样Ntest知道N的潜在值。 更多&回答... |
![]() |
![]() |