MATLAB中的全局符号函数

MATLAB中的全局符号函数,matlab,symbolic-math,Matlab,Symbolic Math,我有以下代码: global a; syms x y; a(x,y) = 1+0*x*t; %this will be changed in future 在2012b中,该代码给出了一个错误: Error using sym/subsindex (line 1367) Indexing input must be numeric, logical or ':'. 当我将行global a放在a(x,y)=1+0*x*t之后时,该代码开始工作,但给出了一个警告:“未来版本的MATLAB将要求

我有以下代码:

global a;
syms x y;
a(x,y) = 1+0*x*t; %this will be changed in future
在2012b中,该代码给出了一个错误:

Error using sym/subsindex (line 1367)
Indexing input must be numeric, logical or ':'.
当我将行
global a
放在
a(x,y)=1+0*x*t
之后时,该代码开始工作,但给出了一个警告:“未来版本的MATLAB将要求在使用前将变量定义为全局变量”。那是奇怪的行为


为什么MATLAB不能创建全局符号函数?为什么MATLAB试图将其解释为数组而不是符号函数?

它不应该是
a=1+0*x*t?@LuisMendo:这是一个象征性的表达,但不是象征性的乐趣@EverOid:Try
a=symfun(1+0*x*t[x t])
2013b也会出现这种情况。显然,这看起来像一只虫子。提供的解决方法至少可以避免警告@Everv0id,你应该和MathWorks一起。还要考虑你是否真的需要使用全局变量。它们很少是必要的或最好的解决方案。