【问题标题】:Error About Number of Elements In For-Loop关于 For 循环中元素数的错误
【发布时间】:2014-02-16 23:17:46
【问题描述】:

这是我的代码:

%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);


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

我会感谢别人的帮助。

【问题讨论】:

    标签: matlab for-loop vector elements


    【解决方案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

    【讨论】:

    • 哦,所以错误是我忽略了在我的 for 循环中索引向量 t?
    • @Mack 这取决于你打算做什么。但可以肯定的是,如果你索引向量t,错误就会消失
    猜你喜欢
    • 1970-01-01
    • 2016-06-10
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    相关资源
    最近更新 更多