MATLAB Answers

Ken Lew
0

Increasing increment values with vector operations

Asked by Ken Lew
on 27 Jun 2018
Latest activity Commented on by Ken Lew
on 27 Jun 2018
Accepted Answer by Jan
I'm trying to change this code into a single line of code using vector operations,
a = [];
x = 5;
while x <= 15
a(x-4) = x^2;
x = x + 1;
end
Where the sequence is
25,36,49,64,81,100,121,144,169,196,225
and the difference between two numbers are
11,13,15,17,19,21,23,25,27,29
The number difference have a value of 2 between them
My idea was,
a=25:X:225
where X is the increment value, but i found that X should increase by 2 after every number(11,13,15,17,...). How should i go about this?

  2 Comments

By the way: a[x-4] = x^2 must be a(x-4) = x^2
Oh right. Changed it, Thanks!

Sign in to comment.

Tags

2 Answers

Answer by Jan
on 27 Jun 2018
 Accepted Answer

This is leaner than your loop:
a = (5:15) .^ 2

  1 Comment

Thank you so much ! I wasn't aware you could do this.

Sign in to comment.


Answer by Ameer Hamza
on 27 Jun 2018

difference = 11:2:29;
a = 25+[0 cumsum(difference)]
a =
25 36 49 64 81 100 121 144 169 196 225

  1 Comment

+1. Exactly.

Sign in to comment.