Matlab中矢量到矢量的复制
我有一个简单的问题,关于如何将一个向量复制到另一个向量。我有一个长度为66x1的向量,然后是另一个长度为2151x1的向量。我想将第一个的值复制到另一个的精确位置。我试过了,但没用 inter=66x1 out=2151x1Matlab中矢量到矢量的复制,matlab,vector,Matlab,Vector,我有一个简单的问题,关于如何将一个向量复制到另一个向量。我有一个长度为66x1的向量,然后是另一个长度为2151x1的向量。我想将第一个的值复制到另一个的精确位置。我试过了,但没用 inter=66x1 out=2151x1 for i=1:numel(inter) out(101:167)= inter(i) end 我也试过这个: for inter=(1:66); out(101:167)=inter; end 这是: for k= (101:167) out
for i=1:numel(inter)
out(101:167)= inter(i)
end
我也试过这个:
for inter=(1:66);
out(101:167)=inter;
end
这是:
for k= (101:167)
out(k)=inter(1:66);
end
我做错了吗?提前感谢,假设你的向量是
a = [1; 2; 3];
b = [4; 5; 6; 7; 8; 9];
为了简单起见
不需要使用循环。你可以这样做:
startIdx = 2; %101 in your case
finalIdx = startIdx + size(a,1) - 1; % 166 in your case
b(startIdx:finalIdx) = a;
那么b将是:
b =
4
1
2
3
8
9
这里非常重要的一点是
finalIdx
中的-1
。您需要从最终索引中减去1。假设向量为
a = [1; 2; 3];
b = [4; 5; 6; 7; 8; 9];
为了简单起见
不需要使用循环。你可以这样做:
startIdx = 2; %101 in your case
finalIdx = startIdx + size(a,1) - 1; % 166 in your case
b(startIdx:finalIdx) = a;
那么b将是:
b =
4
1
2
3
8
9
这里非常重要的一点是
finalIdx
中的-1
。您需要从最终索引中减去1。您的问题是对for循环的误解。for行中的变量只是一个数字(=1x1矩阵)-而在循环中,您重复将其分配给向量(66x1矩阵)。您的问题是对for循环的误解。for行中的变量只是一个数字(=1x1矩阵)-而在循环中,您可以重复将其分配给向量(66x1矩阵)。或者只执行out(101:166)=inter
:-)或只执行out(101:166)=inter
:-)