Vector where elements equals previous elements + 1

I wish to make a column vector where ecah element eqaul the previous element + 1. I also want to be able to decide by a loop how mane elements the vector should contain. Example: start =1;end=1 should give the vector [1}. start=1;end=3 should give the vector [1 2 3]. I hope someone has an idea about how to solve this.

1 Commento

This is such a basic thing that I would really suggest you having another read of the manual.

Accedi per commentare.

 Risposta accettata

do as wrote Daniel
OR
end1 = 3;
for jj = end1:-1:1
vector(jj) = jj;
end

2 Commenti

I am not convinced Karl will be able to figure out make that go from A to B ...
Thanks!

Accedi per commentare.

Più risposte (2)

Using end is a bad choice since it is special in MATLAB. I think what you are asking for is
a:b

3 Commenti

It is no problem for me using a term other than end. I just with to make a vector equall to [1 (1+1) (1+1+1) (1+1+1+1)...(1xn)] where I can adjust n...
Why this is different from Daniel's answer?
n=5
a=1
b=n
out=a:b
That did the trick. Thanks!

Accedi per commentare.

a=[1 1 1)
out=cumsum(a)

4 Commenti

This was an example where start =1 and end=3 in mye exemple aboove. However, I need a loop, so that I don't have to write the number of 1's every time as in your line 1. I have lots of different vetor lengths that I vary all the time.
Azzi, while I agree this works, why would you go this way?
I've just misunderstood the question
Ahh now I see. I can see how the description would lead you to think CUMSUM is the right answer.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by