2016-11-28 11 views
0

私はRユーザーであり、Matlabで遊んでいます。Matlab - 配列を徐々に減らすセルを選択する

私はこのようなデータセットがある場合:私は、値2を選択するにはどうすればよい

1 
2 
3 
4 
5 

:4を、そして二つのセルをスキップして、7を選択:9(...というように)?

私は、データの列16で次のループを試してみましたが、唯一のインクリメンタルつの番号を選択するのではなく、値の範囲まし

:あなたは簡単にしてインデックスを生成することができますMATLABで

% Select GVA of regions 
nuts3 = 30; 
for nuts3 = 1:Nnuts3 
regionGVA = datanum(2:4:length(datanum),16); 
end 
+0

どのようにRで実行できますか? – rahnema1

答えて

1

colon operator。複雑なインデックススライスの作成には非常に便利です。end keywordです。ここで

は1つがあなたがやりたいことができる方法です:

% Generate some easily recognised data 
data = [1;1; zeros(N-2,1)]; 
for ii = 3:N 
    data(ii) = sum(data(ii-2:ii-1)); end 

% Index said data at positions 2:4, 7:9, ... 

% before R2016b: 
slice = data(bsxfun(@plus, (2:4)', 0:5:end-3)) 

% after R2016b: 
slice = data((2:4)' + (0:5:end-3)) 

注これは行列を出力します。単純な単純な列ベクトルが必要な場合は、

slice = slice(:); 
+0

これはうまくいきました、Rodyに感謝します –

関連する問題