Filter löschen
Filter löschen

confusion related to 'for' loop.

1 Ansicht (letzte 30 Tage)
parag gupta
parag gupta am 20 Mär. 2019
Beantwortet: Steven Lord am 20 Mär. 2019
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

Akzeptierte Antwort

madhan ravi
madhan ravi am 20 Mär. 2019
p = num2cell(2.^(1:8))
  1 Kommentar
madhan ravi
madhan ravi am 20 Mär. 2019
In your loop you just had to add
p{i} = epsilon^i
but you can straight away use the method in the answer.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Steven Lord
Steven Lord am 20 Mär. 2019
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

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by