在for循环matlab中求解并存储方程中的两个未知变量



我想计算热流方程eqns_N=[HANL*(I-Tw1(=kAN(Tw1-Tw2(,kAN(Tw1-Tw2(==H1ANL*(Tw2-T2(];i是excel的输入值,我想将Tw1和Tw2的每个变量存储在一个数组中。目前我只得到一个1X1符号格式的值以下是代码:-

for j = 2:numel(Tsol_N)
i=Tsol_N(j);
eqns_N = [H*AN*L*(i-Tw1) == k*AN*(Tw1-Tw2), k*AN*(Tw1-Tw2) == H1*AN*L*(Tw2-T2)];
S_N= solve(eqns_N, [Tw1 Tw2],'Real',true);
res = subs(S_N,{Tw1,Tw2});
%Tw1(i).Tw1 = double(S_N.Tw1);
%Tw2(i).Tw2 = double(S_N.Tw2);
overall_cooling_load = H*AN*(S_N.Tw2 - T2);
rounded_overall_cooling_load = double(overall_cooling_load);
overall_cooling_load1 = [overall_cooling_load ; Tsol_N];
rounded_overall_cooling_load2= [rounded_overall_cooling_load ; Tsol_N];
end

实现这一点的方法是在循环中使用j作为索引。

for j = 2:numel(Tsol_N)
...
eqns_N(j-1) = ...
S_N(j-1) = ...
res(j-1) = subs(S_N(j-1), {Tw1, Tw2});

依此类推。这样,第一个结果存储在res(1)中,第二个在res(2)中。

记住为矩阵预先分配内存,以避免矩阵增长。

如果输出不是标量,那么我建议您使用单元格:

for j = 2:numel(Tsol_N)
...
eqns_N{j-1} = ...
S_N{j-1} = ...
res{j-1} = subs(S_N{j-1}, {Tw1, Tw2});

相关内容

  • 没有找到相关文章

最新更新