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 中查找有关 2-D and 3-D Plots 的更多信息

标签

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by