J'ai un tableau a = [A1, A2, A3, ..., an] code> Je voudrais emprunter un produit de chaque 3 éléments:
S1 = A1 + A2 + A3 CODE> P>
S2 = A4 + A5 + A6 CODE> P>
... P> P> P> P> P>
sm = a (n-2) + a (n-1) + un code> p>
k=size(A);
s=0;
for n=1:k
s(n)=s(n-2)+s(n-1)+s(n);
end
3 Réponses :
Vous essayez de calculer qui étant dit, obtenez les 2 valeurs priveuses ou s code> à l'aide de valeurs à partir de
S code>. Vous ne voulez pas dire
s (n) = A (n-2) + a (n-1) + a (n); code>? Également
Taille code> retourne plus d'une dimension par elle-même.
n-2 code> et
n-1 code > Du point de vue de N = 1; 2 (parce que vous devez avoir des indices positifs). Vous devez expliquer comment les deux premières valeurs doivent être utilisées. Je suppose que 0 pour des éléments n'existant pas encore p>
s code> shoult soit 2 valeurs plus courte que
A code>. p>
s (1) est une somme d'A1, A2 et A3
Le tableau donné a n éléments. Je voudrais calculer une somme d'une ligne
s code> comme scalaire avec s = 0 code>. Ensuite, vous essayez de l'indexer comme un tableau, mais il n'a qu'un seul élément. Li>
-
Votre logique actuelle (si fixe) calculera ceci: p>
s = sum( reshape( a, 3, [] ) );
Pour la dernière partie, il n'est pas réellement nécessaire que a code> soit un vecteur de ligne, est-ce?
@LUISMENDO J'aurais probablement pu vaincre "Vector" :)
@LUISMENDO Je travaille avec A code> sous forme de tableau N-DIMENSIONAL, A (1) ... est une matrice m-dimensionnelle,
m
@NOEL qui n'est pas mentionné du tout dans votre question et affecte fondamentalement la manière dont les réponses données aura bien fonctionnent ... veuillez toujours inclure un représentant exemple reproductible minimal pour ce que vous voulez réaliser
Si vous voulez résumer dans blocs forts>, pour le cas général lorsque le nombre d'éléments de a code> est
accumarray code>
: A = [3 8 5 8 2 3 4 7 9 6 4]; % 11 elements
s = 3; % block size
result = conv(A(:).', ones(1,s), 'valid');
Depuis MATLAB R2016A, vous pouvez utiliser la fonction MOVSUM code> pour calculer une somme coulissante, qui est un peu plus intuitive que la méthode de convolution.