通过给定另一个向量的值来拆分向量

时间:2012-03-27 10:45:18

标签: matlab vector split

让我们说我们有以下向量:

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 :(得分:0)

以下作品:

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