2016-12-28 8 views
0

大きな配列に複数の小さな配列を入力する必要があります。コンクリートインデックスから始まる小さな配列からのデータ。たとえば、次のように加えて大きな配列に小さな配列のデータを入力してください

a = [0 0 0 0 0 0 0 0 0 0]; 
b = [1 2 3 ]; 

r = [0 0 0 1 2 3 0 0 0 0]; 

、それが交差するデータは合計すると上書きしないように、このようにできるようになる方法を実行する必要があります:

a = [0 0 0 1 2 3 0 0 0 0]; 
c = [3 2 1]; 

r = [0 3 2 2 2 3 0 0 0 0]; 

感謝。

答えて

0

それは実際には非常に簡単です:

function q41370447 
    ind = [4, 2]; 
    a = zeros(1,10); 
    b = 1:3; 
    c = 3:-1:1; 

    a = addFromIndex(a,b,ind(1)); 
    % [0,0,0,1,2,3,0,0,0,0] 
    a = addFromIndex(a,c,ind(2)); 
    % [0,3,2,2,2,3,0,0,0,0] 
end 

function largeVec = addFromIndex(largeVec,smallVec,startIndex) 
    n = numel(smallVec); 
    largeVec(startIndex:startIndex+n-1) = largeVec(startIndex:startIndex+n-1) + smallVec; 
end 
0
a=[0 0 0 1 2 3 0 0 0 0]; 
c=[3 2 1]; 

your_concrete_index = 2; 
cc = zeros(1,length(a)); %same length, filled with zeros 
cc(your_concrete_index:your_concrete_index+length(c)-1) = c;%from index, whole c 
a_result = a+cc; % just sum.. 
関連する問題