Matlab 将一个向量除以另一个向量的给定值
假设我们有以下向量:Matlab 将一个向量除以另一个向量的给定值,matlab,vector,split,Matlab,Vector,Split,假设我们有以下向量: data =[12,343,63,3636,63,6363,636,363,63,346]; index=[1 3;4 8; 9 10]; 我现在要做的是,在向量索引的索引值之后拆分向量数据,而不使用循环,这样看起来就像: matrix= 12 343 63 0 0 3636 63 6363 636 363 63 346 0 0 0 以下工作: nx = max(index(:,2) - in
data =[12,343,63,3636,63,6363,636,363,63,346];
index=[1 3;4 8; 9 10];
我现在要做的是,在向量索引
的索引值之后拆分向量数据
,而不使用循环,这样看起来就像:
matrix= 12 343 63 0 0
3636 63 6363 636 363
63 346 0 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
OP haws说“没有循环”。Oops,没有看到。但我不确定是否有无循环的解决方案。OP显然认为答案是可以的,因为他接受了;)我希望看到一个无循环的版本。有人来完成这项任务吗?