??? 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了,怎么还能做下面那么多数组的脚标呢!
不要用t做数组的脚标,因为t有小数。不信你可以将t=0.05:0.05:T改为t=1:1:T。建议建立另外一个变量标记时间步长。那么将时间t放入T矩阵。T(count)就是第count步的时间值。F(count)为第count步的值。其他如此类推。将对count的循环代替对t的循环。