syms t u(t) v(t) z R1 = 1.2e-3; R2 = 9.2e-3; Cin = 1.1e6/60; Cwall = 1.86e8/60; PN = 8000; qin = 20; qout = 0; u1 = diff(u); v1 = diff(v); eq1 = Cin*u1 == PN - (u - v)/R1; eq0 = Cin*u1 == 0 - (u - v)/R1; eq2 = Cwall*v1 == (u - v)/R1 - (v - qout)/R2; eq3 = u(0) == 20; eq4 = v(0) == z; [uSol1(t), vSol1(t)] = dsolve(eq1, eq2, eq3, eq4); [uSol2(t), vSol2(t)] = dsolve(eq0, eq2, eq3, eq4); figure(1) subplot(1, 2, 1), fplot3(uSol1, [0 1440], [0 30]); title('开启时室内温度'); xlabel('时间'), ylabel('z轴'), zlabel('温度') subplot(1, 2, 2), fplot3(vSol1, [0 1440], [0 30]); title('开启时墙体温度'); xlabel('时间'), ylabel('z轴'), zlabel('温度') figure(2) subplot(1, 2, 1), fplot3(uSol2, [0 1440], [0 30]); title('关闭时室内温度'); xlabel('时间'), ylabel('z轴'), zlabel('温度') subplot(1, 2, 2), fplot3(vSol2, [0 1440], [0 30]); title('关闭时墙体温度'); xlabel('时间'), ylabel('z轴'), zlabel('温度')报错:错误使用 fplot3 输入 应为以下类型之一: function_handle, sym 但其类型为 double。
时间: 2024-01-29 07:02:46 浏览: 80
syms T06.rar_matlab 正解_matlab程序-正解_机器人运动学
这个错误是因为 fplot3 函数需要的第一个输入参数必须是一个函数句柄或符号表达式,但是在这里输入的 uSol1 和 vSol1 是数值数组,不是函数句柄或符号表达式,所以 fplot3 函数无法处理。
要解决这个问题,需要将 uSol1 和 vSol1 转换成函数句柄或符号表达式,可以使用 matlabFunction 函数将其转换成函数句柄。具体做法如下:
```matlab
uSol1_func = matlabFunction(uSol1);
vSol1_func = matlabFunction(vSol1);
```
然后将 uSol1_func 和 vSol1_func 作为 fplot3 函数的第一个输入参数进行绘图即可。
阅读全文