How do I create a vector of n exponentially increasing values from a to b?

117 vues (au cours des 30 derniers jours)
Tom
Tom le 4 Avr 2013
Modifié(e) : Stephen23 le 13 Août 2018
I know how to calculate the growth factor, but not how to turn it all into a vector. Here's the start of my code: -
n = 4
a = 1
b = 10
gf = (b/a)^(1/n - 1)
  1 commentaire
Tom
Tom le 4 Avr 2013
I think I've done it with a for loop: -
n = 4
a = 1
b = 10
gf = (b/a)^(1/(n - 1))
for k = 1:n
y(k) = a*gf^(k-1);
end
Does anyone know how I could do it using a non-for loop method?

Connectez-vous pour commenter.

Réponse acceptée

the cyclist
the cyclist le 4 Avr 2013
k = 1:n;
y = a*gf.^(k-1);
or, even simpler
y = a*gf.^((1:n)-1);
  3 commentaires
Ramm
Ramm le 13 Août 2018
Modifié(e) : Ramm le 13 Août 2018
Is this a specific module that I need to add? In my case it doesn't work:
n = 4;
a = 1;
b = 10;
K>>
K>> k = 1:n;
K>> y = a*gf.^(k-1);
Error using .^ (line 1000)
Sizes of x, y don't match.
K>> y = a*gf.^((1:n)-1);
Error using .^ (line 1000)
Sizes of x, y don't match.
Stephen23
Stephen23 le 13 Août 2018
Modifié(e) : Stephen23 le 13 Août 2018
@Ramm: That error message is telling you what the problem is. It does not mention that you need any "specific module". It shows that your gf is non-scalar and is not the same size as k, thus you will get this error. The code in this answer works perfectly, as long as you define a scalar growth factor (exactly as the question shows):
>> n = 4;
>> a = 1;
>> b = 10;
>> gf = (b/a)^(1/n-1)
gf = 0.17783
>> k = 1:n;
>> y = a*gf.^(k-1)
y =
1.0000000 0.1778279 0.0316228 0.0056234

Connectez-vous pour commenter.

Plus de réponses (1)

Carlos
Carlos le 4 Avr 2013
>> y=zeros(4,1);
>> n=1:1:4;
>> y(1:4)= a*gf.^(n(1:4)-1);
>> y
y =
1.0000
2.1544
4.6416
10.0000
  3 commentaires
Ramm
Ramm le 13 Août 2018
This doesn't work either.
Stephen23
Stephen23 le 13 Août 2018
@Ramm: although that n usage is a bit dodgy, it also works.

Connectez-vous pour commenter.

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by