我使用相同的种子生成随机数字序列:
sprev = rng(2,'v5uniform');
for i=1:N
%do some operations
rndIDX = randperm(sampleSize) ;
newdata= data(rndIDX(1:newSampleSize), :) ;
if x>y
remove=x1; %line 7
end
for l=1:M
%do something else
if l>xy & ~empty(remove)
%do something related to remove
elseif l>xy
%do nothing
else
%do something not related to remove
end
%more code here
end
end
但是,当我注释掉第7行时,rndIDX会返回一个不同的数字序列,这对我来说是意想不到的。代码中可能存在某个错误,但我不确定randperm
生成的序列与后面的代码之间的关系是什么。此外,如果我保持代码显示我总是得到相同的新数据,这是预期的行为。我只想在第7行发表评论并仍然获得相同的新数据。我可以确认sampleSize
始终与newSampleSize
完全相同。