[求助] MATLAB编程问题:我编写了一个迭代计算程序,里面总是出错,我把程序贴出来,希望高手来帮助我!

2024-11-16 18:25:53
推荐回答(2个)
回答1:

??? Subscript indices must either be real positive integers or logicals.

这个报错的意思就是,你的数组脚标出现0或负值或者小数了。
matlab的脚标必须是正整数。像a(1),a(2)
如果出现a(1.1) a(-1) a(0)都是报这样的错误。

所以你程序的这里
if(t<=0)
eA(t)=0;eF(t)=0;b(t)=0;m(t)=0;qF2(t)=0;qF1(t)=1;qF3(t)=1;qA(t)=1;qB(t)=1;
end

t都小于等于0了,怎么还能做下面那么多数组的脚标呢!

回答2:

不要用t做数组的脚标,因为t有小数。不信你可以将t=0.05:0.05:T改为t=1:1:T。建议建立另外一个变量标记时间步长。那么将时间t放入T矩阵。T(count)就是第count步的时间值。F(count)为第count步的值。其他如此类推。将对count的循环代替对t的循环。