我如何使用迭代存储变量?它给错误下标指标必须或者是真实的积极的整数或逻辑值。

1视图(30天)
我写的代码2代理,但面临的问题将变量存储在迭代。错误显示下标指标必须或者是真实的积极的整数或逻辑值。我想朗姆酒循环50次迭代。
t0 = 0;
tf = 20;
tspan = (t0:1: tf);
x0 = (3, 0, 0);
u1 (1) = 3;u2 (1) = 3;
E1 (1) = 2;E2 (1) = 2;
itt = 50; N = 4;
日元= 0
日元(1)= 3;y2 (1) = 1;
一个= (0 1;1 0);
% 1剂
我= 1:itt公司
选择= odeset (“RelTol”1 e - 3,“AbsTol”1 e-6);
(t, x) = ode23 (@new tspan, x0,选项)
y1_est (i) = y₁(张)+ E1(我)* ()du1(我));
err1 (i) = y₁(i) -y1_est(我);
如果(签署(E1 (i)) < 0)
E1 (i) = E1 (1);
其他的
E1 (i) = E1(张)+(η*)du1(张)* err1(张))/(μ+)du1(张)^ 2)
结束
结束
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
函数xdot = new (t, x)
x1 = x (1);
x2 = x (2);
x3 = x (3);
X1 = (X1, x2, x3);
= (0.5 0.035 0.025;0.0255 0.6 -0.99 0.75 0.03 0.025);
B = (0.2, 0.2, 0);
C = (1 0 1);
日元= C * X1;
xdot1 = * X1 + B * u1;
xdot = [xdot1];
结束

接受的答案

杰夫•海斯
杰夫•海斯 2021年6月17日
Shivanshu——可能的错误
我= 1:itt公司
选择= odeset (“RelTol”1 e - 3,“AbsTol”1 e-6);
(t, x) = ode23 (@new tspan, x0,选项)
y1_est (i) = y₁(张)+ E1(我)* ()du1(我));
因为在第一次迭代的列表, 1然而,代码试图访问吗 日元(张) …因此,错误。我认为你需要重新考虑如何从这些数组访问数据。我建议从2(即。 因为我= 2:itt公司 ),但我怀疑会导致其他问题。
8的评论

登录置评。

更多的答案(0)

类别

找到更多的在编程帮助中心文件交换

标签

下载188bet金宝搏


释放

R2017b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的