matlab将函数用字符变量表示,为什么为字符变量赋值后输出的不是数字还是包含字符变量?

我希望将T1函数用未知变量m表示,然后用fork=1:36循环中为每一个k都求出一个相应的m,得到T1的数组,再将T1与已知数组c(k)点乘得r(k)(1行36列),最后... 我希望将T1函数用未知变量m表示,然后用for k=1:36循环中为每一个k都求出一个相应的m,得到T1的数组,再将T1与已知数组c(k)点乘得r(k)(1行36列),最后R=数组r求和。
明明循环里已经为m赋值a了,但是运行得到的结果还是包含字符变量m,为什么?
下面是我的程序代码:
x1=304.973306;x2=7200.000484;x3= 32000.326383;x4=4494.403655;T4=4494.403655;
s1=3.231381;s2=0.000891;s3=5.558572;n=4;
r1=1;r2=2;r3=3;r4=5;r5=7;r6=10;r7=15;r8=20;
i1=0;i2=1.8062;i3=2.8627;i4=4.1938;i5=5.0706;i6=6.0000;i7=7.0565;i8=7.8062;
H1=s1;H2=s1+s2;H3=s1+s2+s3;
c=[
0.39053314E-03;-0.10087715E-02;0.18339484E-02;-0.22372433E-02;0.26864314E-02;-0.24139139E-02;0.26852880E-02;-0.18292607E-02;0.24492093E-02;-0.82138589E-03;0.24664738E-02;0.69159672E-03;0.32120792E-02;0.32357338E-02;0.55210545E-02;0.80328605E-02;0.11157895E-01;0.17713717E-01;0.23921121E-01;0.37878738E-01;0.51866610E-01;0.80094716E-01;0.11087382E+00;0.16458964E+00;0.22063809E+00;0.29147621E+00;0.29934872E+00;0.15862530E+00;-0.32349971E+00;-0.53249164E+00;0.51481121E+00;
-0.19282817E+00;0.51125704E-01;-0.12635500E-01;0.28267073E-02;-0.40198125E-03
];
c=c.';
aa=zeros(1,36);

for k=1:36

syms m;
T3=xunhuan1(m,x3,T4,H1);
T2=xunhuan2(m,x2,T3,H2);
T1=xunhuan3(m,x1,T2,H3);

a=0.9547*10^((k-26-i1)/6);
aa(k)=a;
m=aa(k);

r(k)=T1.*c(k);

end
R=sum(r)

function T3=xunhuan1(m,x3,T4,H1)
T3=x3*((T4+x3)+(T4-x3)*exp(-2*m*H1))/((T4+x3)-(T4-x3)*exp(-2*m*H1));
end
function T2=xunhuan2(m,x2,T3,H2)
T2=x2*((T3+x2)+(T3-x2)*exp(-2*m*H2))/((T3+x2)-(T3-x2)*exp(-2*m*H2));
end
function T1=xunhuan3(m,x1,T2,H3)
T1=x1*((T2+x1)+(T2-x1)*exp(-2*m*H3))/((T2+x1)-(T2-x1)*exp(-2*m*H3));
end
展开
 我来答
lhmhz
高粉答主

2020-05-05 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17020

向TA提问 私信TA
展开全部

你的问题可以这样来处理。即

将 R=sum(r)  改为  R=eval(sum(r) )




推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式