Increasing increment values with vector operations

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 个评论

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

请先登录,再进行评论。

 采纳的回答

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

更多回答(1 个)

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

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by