2013-01-25 47 views
0

我有一個關於如何將矢量複製到另一箇中的簡單問題。我有一個長度爲66x1的矢量,然後是另一個長度爲2151x1的矢量。我想將第一個值的值複製到另一個位置。我試過,但它不起作用。在Matlab中將矢量複製到矢量中

間= 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(k)=inter(1:66); 
end 

難道我做錯了嗎?在此先感謝,

+0

你的問題是對for循環的誤解。 for行中的變量只是一個數字(= 1x1矩陣) - 在循環中,您將其重複分配給一個向量(66x1矩陣)。 – bdecaf

回答

7

比方說,你的載體

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。

+1

或者只是'out(101:166)= inter' :-) – KlausCPH

+0

非常感謝! :) – user1578688