为什么我得到“数组索引必须是正整数或逻辑值”

7视图(30天)
我试图解决以下微分方程ode3。Tc_p cfit,我改变symfun所以我可以susbtitute微分方程和解决整件事情。我不明白为什么我得到错误“数组索引必须是正整数或逻辑值。”。Thx advanace。
清晰的所有
datos_TH;
信谊Tfav (t) Tcav (t) Tm (t)
cond1 = Tfav (0) = = (Tf0-Tm0) / (Tf0-Tm0);
cond2 = Tcav (0) = = (Tc0-Tm0) / (Tf0-Tm0);
% cond3 = Tm (0) = = Tm0;
气孔导度= [cond1;cond2];
ode1 = diff (Tfav) = = 2 * Bigf * (Tfav-Tcav) / Rf0 + 100;
ode2 = diff (Tcav) = = 2 * K * (Bigc * Rci * (Tfav-Tcav) bi (1) * Tcav) / (1-Rci ^ 2);
% ode3 = diff (Tm) = = (Sc *嗨(1)* (Tc-Tm) 2 * m * cp * (Tm-Tm0)) / (Mc * cp);
常微分方程= [ode1; ode2];
[TcavSol (t) TfavSol (t)) = dsolve(诗赋,气孔导度);
Tf = [];
Tc = [];
n = 1;
t_0 = 25;
time_ad = t_0 * kf / (Rhof * cf * rc0 ^ 2);
我= 0:0.01:time_ad
双(TfavSol特遣部队(n) =(我))* (Tf0-Tm0) + Tm0;
双(TcavSol Tc (n) =(我))* (Tf0-Tm0) + Tm0;
n = n + 1;
m = n + 1;
结束
%慢化剂温度的颂歌
保存(“Tc”,“Tc”);
t = linspace (0 t_0 m - 2);
t = ' (t);
Tc = ' (Tc);
Tc_p =适合(t, Tc,“poly8”);
Tc_p =潜艇(str2sym(公式(Tc_p)), coeffnames (Tc_p) num2cell (coeffvalues (Tc_p)。');
Tc_p =潜艇(Tc_p,“t”);
cond3 = Tm (0) = = Tm0;
(toyota ode3 = diff“t”)= = (Sc *嗨(1)* (Tc_p-Tm) 2 * m * cp * (Tm-Tm0)) / (Mc * cp);
常微分方程= ode3;
TmSol (t) = dsolve (ode3 cond3);
和完整的错误是:
数组指标必须是正整数或逻辑值。
错误信谊/ privsubsasgn(第1311行)
L_tilde2 =内装式(“subsasgn”、L_tilde结构(“类型”,“()”,“潜艇”{变长度输入宗量}),R_tilde);
错误在索引(第1142行)
C = privsubsasgn (L R第1 {:});
错误在Sim_TH(41)行
TmSol (t) = dsolve (ode3 cond3);

接受的答案

史蒂文的主
史蒂文的主 2023年4月27日
你在代码中使用Tm但你定义它。我怀疑是你将它定义为一个数字矢量像你一样Tf和Tc。但是向量指标不能是0。
3评论

登录置评。

标签

社区寻宝

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

开始狩猎!