复制矢量到Matlab中的矢量

use*_*688 0 matlab vector

我有一个关于如何将矢量复制到另一个矢量的简单问题.我有一个长度为66x1的向量,然后是另一个长度为2151x1的向量.我想将第一个中的值复制到另一个中的准确位置.我试过了,但它不起作用.

inter = 66x1 out = 2151x1

for i=1:numel(inter)
    out(101:167)= inter(i)
end
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

for inter=(1:66);
    out(101:167)=inter;
end 
Run Code Online (Sandbox Code Playgroud)

还有这个:

for k= (101:167)
    out(k)=inter(1:66);
end
Run Code Online (Sandbox Code Playgroud)

我做错了吗?提前致谢,

Heb*_*odo 6

让我们说你的向量是

a = [1; 2; 3];
b = [4; 5; 6; 7; 8; 9];
Run Code Online (Sandbox Code Playgroud)

为简单起见.

不需要使用循环.你可以继续这样做:

startIdx = 2; %101 in your case
finalIdx = startIdx + size(a,1) - 1; % 166 in your case
b(startIdx:finalIdx) = a; 
Run Code Online (Sandbox Code Playgroud)

然后b将是:

b =

     4
     1
     2
     3
     8
     9
Run Code Online (Sandbox Code Playgroud)

这里很重要的一点是-1finalIdx.您需要从最终索引中减去1.