关于num2str输出时遇到的问题

clc;
syms x y
f = x.*x+2*x.*y+2*y.*y+2000;
g = 200*x+300*y;
w = g-f;
diff(w,x);
diff(w,y);
[X,Y]=solve(200 - 2*y - 2*x==0,300 - 4*y - 2*x==0);
k=[X,Y];
h=subs(w,{x,y},{X,Y});
str=['最大利益润为',num2str(h),'获得最大利润产品的产量为',num2str(k)];
disp(str)

为什么会出现

错误使用 num2str (line 53)
num2str 的输入必须为数值。

出错 work5 (line 18)
str=['最大利益润为',num2str(h),'获得最大利润产品的产量为',num2str(k)];
这样的错误,该如何解决

str=['最大利益润为',num2str(h),'获得最大利润产品的产量为',num2str(k)];
没看到拟定义变量 h
检查下变量 h 在哪里定义的,是不是数字类型,或者你搞错了变量名