两个集合之差的问题
我想请教一下,比如有一个长950的向量,值是从1到1000之间的整数,互不重复
怎样求出1到1000之间其余的50个数字呢
多谢各位了啊:@)
[ 本帖最后由 eight 于 2007-5-14 09:56 编辑 ] 这个问题有点意思,我试着写了下:
M=1000;
m=1:M;
N=950;
n=floor(randn(1,N)*(N-1))+1;
mt=zeros(size(m));
mt(n)=1;
result=m(find(mt==0));
这里的950个整数可能有重复,但重复的时候是对的,对于不重复的情况肯定也是对的。
呵呵,看看大家有什么更有效的方法 我也写了一个:
A = randperm(1000);
B = setdiff(, A(1:950)); 原帖由 eight 于 2007-5-14 09:53 发表 http://www.chinavib.com/forum/images/common/back.gif
我也写了一个:
A = randperm(1000);
B = setdiff(, A(1:950));
呵呵,还是eight高明 偶也来一个:
A = randperm(1000);
B=1:1000;
C=B(~ismember(B,A(1:950))) 哈哈,多谢各位的回答,
很有帮助啊,大大节省了存储空间
发现我都不知道这些函数,最初是将这950个数挨个与那1000个数比较,
相同的话设置标志位,好多次循环啊,:@L
呵呵,谢谢,俺会好好学习的:loveliness:
页:
[1]