2017-10-18 4 views

答えて

2

ここでは線形インデックスを利用して1つのベクトル化されたアプローチだ -

function out = pick_one_everyN(a, N) 
n = ceil(numel(a)/N); 
c = randi(N,1,n); 
c(end) = randi(mod(numel(a)-1,N)+1,1); 
out = a((0:n-1)*N + c); 

サンプルの実行 -

>> a = [1 2 3 4 5 6 7 8 9 10]; 
>> pick_one_everyN(a, 3) 
ans = 
    3  6  7 10 
>> pick_one_everyN(a, 4) 
ans = 
    4  5  9 
>> pick_one_everyN(a, 5) 
ans = 
    3  7 
は、
関連する問題