首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在for循环matlab中求解并存储两个未知变量

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

Stack Overflow用户
提问于 2022-08-12 05:38:05
回答 1查看 59关注 0票数 1

我要计算热流方程eqns_N = HAN_L*(i-Tw1) == k_AN(Tw1-Tw2),kAN(Tw1-Tw2) == H1_AN_L*(Tw2-T2);I是excel的输入值,我想将Tw1和Tw2的每个变量存储在一个数组中。目前,我只得到一个1X1sym格式的值,下面是代码:-

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-12 06:18:48

这样做的方法是在循环中使用j作为索引。

代码语言:javascript
复制
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)中。

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

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

代码语言:javascript
复制
for j = 2:numel(Tsol_N)
   ...
   eqns_N{j-1} = ...
   S_N{j-1} = ...
   res{j-1} = subs(S_N{j-1}, {Tw1, Tw2});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73329656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档