Asked by Tom
on 4 Apr 2013

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)

Answer by the cyclist
on 4 Apr 2013

Accepted Answer

k = 1:n;

y = a*gf.^(k-1);

or, even simpler

y = a*gf.^((1:n)-1);

Tom
on 4 Apr 2013

Great thanks

Ramm
on 13 Aug 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.

Stephen Cobeldick
on 13 Aug 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

Sign in to comment.

Answer by Carlos
on 4 Apr 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

Tom
on 4 Apr 2013

Many thanks

Ramm
on 13 Aug 2018

This doesn't work either.

Stephen Cobeldick
on 13 Aug 2018

@Ramm: although that n usage is a bit dodgy, it also works.

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 1 Comment

## Tom (view profile)

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/69829-how-do-i-create-a-vector-of-n-exponentially-increasing-values-from-a-to-b#comment_141135

Sign in to comment.