confusion related to 'for' loop.

조회 수: 1 (최근 30일)
parag gupta
parag gupta 2019년 3월 20일
답변: Steven Lord 2019년 3월 20일
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