MATLAB: How to generate random integer from 1 to N except some integers in between

for loopMATLABmatlab functionrandomrandom number generator

Suppose I want to generate unrepeated M integers between 1 and N. but except an arbitrary integer b s.t 1<= b<=N
is there any one-line command or something or do I have to construct a loop?
Thanks

Best Answer

No loops required,
N=10; b=3; M=5; %example data
list=setdiff(1:N,b);
selection=list(randperm(N-1,M)) %result