使用自定义字符串定义符号变量

时间:2017-01-22 16:53:40

标签: string matlab for-loop symbolic-math

我想知道如何用已定义的字符串制作符号变量。它实际上将帮助我们运行此代码:

N=2
for i=1:N
    syms sprintf('r%g',i)
end

运行后出现此错误:

  

使用symfun.parseString时出错(第50行)
      不是有效的变量名。

     

syms中的错误(第166行)
          [name,vars] = symfun.parseString(x);

我希望它将r1r2创建为两个符号变量。

1 个答案:

答案 0 :(得分:2)

问题是因为如果您想将字符串传递给syms,则需要使用function syntax rather than the command syntax。使用当前语法(命令语法),MATLAB尝试创建名为'sprintf('r%g',i)'的符号变量,并且实际上并未评估sprintf

相反,函数语法应如下所示。此外,您应该在格式字符串中使用%d以确保i是一个整数,否则它将不会成为有效的变量名称。

syms(sprintf('r%d', i))