Façon courante de générer des séries géométriques finies dans Matlab
Question
Supposons que j'ai un certain nombre a
, et je veux obtenir vecteur [ 1 , a , a^2 , ... , a^N ]
. J'utilise le code [ 1 , cumprod( a * ones( 1 , N - 1 ) ) ]
. Quelle est la meilleure façon de le faire (et propably efficace)?
La solution
Qu'en est-il a.^[0:N]
?
Autres conseils
La réponse de ThibThib est tout à fait correct, mais il ne généralise pas très facilement si a
arrive à un vecteur. Donc, comme point de départ:
> a= 2
a = 2
> n= 3
n = 3
> a.^[0: n]
ans =
1 2 4 8
Maintenant, vous pouvez également utiliser la fonction intégrée vander
(bien que l'ordre est différent, mais qui est facilement résolu si nécessaire), pour produire:
> vander(a, n+ 1)
ans =
8 4 2 1
Et avec une valeur de vecteur a
:
> a= [2; 3; 4];
> vander(a, n+ 1)
ans =
8 4 2 1
27 9 3 1
64 16 4 1
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow