0

ベクターを別のベクターにコピーする方法について簡単な質問があります。長さ 66x1 のベクトルと、長さ 2151x1 のベクトルがあります。最初の値を別の正確な位置にコピーしたい。私はそれを試しましたが、うまくいきません。

インター= 66x1 アウト= 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

私は間違っていますか?前もって感謝します、

4

1 に答える 1

6

あなたのベクトルが

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

ここで非常に重要な点は-1infinalIdxです。最終インデックスから 1 を引く必要があります。

于 2013-01-25T09:10:30.430 に答える