MATLAB:sym函数不起作用

时间:2012-10-08 17:07:24

标签: matlab

在matlab中我想创建符号向量:

X = sym(['x_n' 'x_(n-1)' 'x(n-2)'])

然而,我得到了

??? Error using ==> sym.sym>expression2ref at 2408
Error: Unexpected 'identifier' [line 1, col 11]

Error in ==> sym.sym>char2ref at 2378
    s = expression2ref(x);

Error in ==> sym.sym>tomupad at 2147
        S = char2ref(x);

Error in ==> sym.sym>sym.sym at 102
                S.s = tomupad(x,'');

如果我尝试创建,例如只是X = sym(['x_n' 'x_(n-1)']),没关系,那有什么不对?

1 个答案:

答案 0 :(得分:0)

如果你想创建一个符号向量(或矩阵),你只需要在方括号周围加一组引号:

X = sym('[x_(n) x_(n-1) x_(n-2)]')

或者

X = sym('[x_(n);x_(n-1);x_(n-2)]')

我假设您在向量的第一个和第三个元素中存在拼写错误,并且希望将x_定义为n的函数(如果没有,请参见下文)。但是,这通常不是构建符号数组的最灵活方式。我使用syms函数代替sym并避免构建字符串(尽管有时使用字符串系统地创建大型矢量/矩阵方程式可能更容易):

syms x_(n)
X = [x_(n) x_(n-1) x_(n-2)]

最后,正如sym的帮助所示,人们也可以自动创建枚举变量的向量和矩阵,例如:

X = sym('x_',[1 3])

如果您实际上不想指定函数向量,则此选项非常方便。