Generated code that mulitples previous number

1 次查看(过去 30 天)
Hello I want to compute a value assuming Xo = 1
using the formular X = e * (p) . ^ ( e - 1) * X
for first X = e * (p) . ^ ( e - 1) * Xo
Second X = e * (p) . ^ ( e - 1) * X1
Third X = e * (p).^(e - 1) * X2
fourth X = e * (p). ^ (e - 1) * X3
it can be simplified
X0 = 1
X1 = e * (p) . ^ ( e - 1) * Xo
X2 = e * (p) . ^ ( e - 1) * X1
X3 = e * (p) . ^ ( e - 1) * X2
X4 = e * (p) . ^ ( e - 1) * X3
Can anyone assist me in generating this code
Thanks in advance
Regards
Tino

采纳的回答

Stephen23
Stephen23 2019-5-30
编辑:Stephen23 2019-5-30
I specified:
e = 1.2;
p = 2.3;
and then your code produces:
X0 =
1
X1 =
1.4175
X2 =
2.0093
X3 =
2.8483
X4 =
4.0375
Simpler MATLAB code using power:
>> (e*p.^(e-1)).^(0:4)
ans =
1 1.4175 2.0093 2.8483 4.0375
or cumprod (as Steven Lord suggested):
>> cumprod(e*p.^(e-1)*ones(1,4))
ans =
1.4175 2.0093 2.8483 4.0375
  7 个评论
Stephen23
Stephen23 2019-5-30
e = 1.2;
p = [3,4;5,6];
N = 5;
C = cell(1,N);
C{1} = 1;
for k = 2:N
C{k} = e*p.^(e-1) * C{k-1};
end
Giving:
>> C{:}
ans = 1
ans =
1.4949 1.5834
1.6557 1.7172
ans =
4.8563 5.0860
5.3181 5.5703
ans =
15.680 16.423
17.172 17.986
ans =
50.631 53.029
55.449 58.076

请先登录,再进行评论。

更多回答(1 个)

Steven Lord
Steven Lord 2019-5-30
Use the cumprod function. [Don't make individually numbered variables, store them as elements of one vector.]
  1 个评论
Tino
Tino 2019-5-30
Thanks Steve
I have done this but not working
e = 0.92;
nnn = e * P.^(e - 1);
for j = 1 : kol
X{j} = cumprod(nnn);
end
But not working how do I go about it

请先登录,再进行评论。

类别

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

标签

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by