关于For-Loop中元素数量的错误

时间:2014-02-16 23:17:46

标签: matlab for-loop vector elements

这是我的代码:

%Initial Conditions:

y(1)=1;
Dy(1)=0;
DDy(1)=0;
t(1)=0;

%Parameters:
dt = 0.1;
nsteps =10/dt;

for i=1:nsteps
    t(i+1) = t(i) + dt;
    DDy(i+1) = 12*t.*y(i) + (18*t.^2 - 6).*(y(i).^2).*Dy(i);
    Dy(i+1) = Dy(i) + DDy(i)*dt;
    y(i+1) = y(i) + Dy(i+1)*dt;
end

以下是错误消息:

在作业中,A(I)= B,数量为 B和I中的元素必须相同。

euler_croemer_de中的错误(第20行)     DDy(i + 1)= 12 * t。* y(i)+(18 * t。^ 2 -     6)*(Y(I)^ 2)*的Dy(I);


我试过在互联网上搜索,我可能会自己解决这个问题。但是,老实说,我找不到任何有用的东西。

我很感激有人的帮助。

1 个答案:

答案 0 :(得分:1)

在第

DDy(i+1) = 12*t.*y(i) + (18*t.^2 - 6).*(y(i).^2).*Dy(i);

t包含i+1个元素,因此右侧是长度为i+1的向量。但是,左侧是指单个值,即DDy的一个条目。因此,您尝试将矢量分配给DDy的单个条目。因此错误。

也许你的意思是t(i+1)而不是t