Разделить вектор по заданным значениям другого вектора - PullRequest
1 голос
/ 27 марта 2012

Допустим, у нас есть следующие векторы:

data =[12,343,63,3636,63,6363,636,363,63,346];
index=[1 3;4 8; 9 10];

Теперь я хочу разделить вектор data после значений индекса вектора index без цикла, чтобыэто выглядит так:

matrix=    12   343 63   0   0
           3636 63  6363 636 363
           63   346 0    0   0

1 Ответ

0 голосов
/ 27 марта 2012

работают следующие работы:

nx = max(index(:,2) - index(:,1)) + 1; % X-dimension of result
result = zeros(size(index, 1), nx) % Preallocate result
for k=1:size(index,1)
   n = index(k,2) - index(k,1) + 1; % Number of elements in this batch
   result(k,1:n) = data(index(k,1):index(k,2)); % Copy element
end
...