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

Use a custom string to define symbolic variable

我想知道如何从已定义的字符串中创建符号变量。它实际上会帮助我们制作这段代码 运行:

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

这个错误是在运行之后出现的:

Error using symfun.parseString (line 50)
Not a valid variable name.

Error in syms (line 166)
[name, vars] = symfun.parseString(x);

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

这个问题是因为如果你想将字符串传递给 syms,你需要使用 function syntax rather than the command syntax。使用您当前的语法(命令语法),MATLAB 正在尝试创建一个名为 'sprintf('r%g',i)' 的符号变量,但实际上并不计算 sprintf.

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

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