confusion related to 'for' loop.

2 次查看(过去 30 天)
epsilon = 2
p = cell(1,8);
for i = 1:8
p{i} = epsilon
end
How to edit this code so that I can get p{1} = epsilon,p{2} = epsilon ^2 ,p{2} = epsilon ^3 .......
i.e i want p{1} = 2,p{2} = 4, p{3} =8.....
Thanks

采纳的回答

madhan ravi
madhan ravi 2019-3-20
p = num2cell(2.^(1:8))
  1 个评论
madhan ravi
madhan ravi 2019-3-20
In your loop you just had to add
p{i} = epsilon^i
but you can straight away use the method in the answer.

请先登录,再进行评论。

更多回答(1 个)

Steven Lord
Steven Lord 2019-3-20
Do you need the elements in a cell array, or is having them in a regular vector sufficient?
epsilon = 2;
thepowers = 1:8;
p = epsilon.^thepowers
If you're preparing for epsilon being a vector or matrix in the future, you can still use this technique, taking advantage of implicit expansion which is a generalization of scalar expansion. It just gets a little more complicated for matrices or N-dimensional arrays.
epsilon = [1; 2; 3; 4];
thepowers = 1:8;
p2 = epsilon.^thepowers
For a matrix M, you want thepowers to be a 3-dimensional array.
epsilon = magic(4);
thepowers = reshape(1:8, 1, 1, []) % or
thepowers = reshape(1:8, [1 1 8])
p3 = epsilon.^thepowers

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by