0

1xN関連する部分を切り取りたいデータの配列があります。基本的に、データのどの部分を抽出する必要があるかを示す2 つの配列がbeginIndexあります。endIndex

例:

data = 1:10;
beginIndex = [1 5 9];
endIndex = [3 6 10];

望ましい結果は

partitionedData = [1 2 3 5 6 9 10] %Indices: 1-3, 5-6, 9-10 

私はすでに試しました

partitionedData = data(beginIndex:endIndex)

後者は私に同等のものを与えます

partitionedData = data(beginIndex(1):endIndex(1)) %[1 2 3]

accumarrayも試しましたが、集計関数はスカラー値を返す必要があります。ここで助けていただければ幸いです。

ありがとうございました

4

2 に答える 2

1

一行で:-)

data(cell2mat(arrayfun(@(x,y) x:y, beginIndex,endIndex,'UniformOutput',false)))
于 2013-09-05T21:29:02.570 に答える
1

そのようです:

>> partitionedData = data(cell2mat(arrayfun(@(s,e) s:e, beginIndex, endIndex, ...
    'uni', 0)))
partitionedData =
     1     2     3     5     6     9    10
于 2013-09-05T21:22:27.413 に答える