使用自定义字符串定义符号变量
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);
我希望它创建 r1
和 r2
作为两个符号变量。
这个问题是因为如果你想将字符串传递给 syms
,你需要使用 function syntax rather than the command syntax。使用您当前的语法(命令语法),MATLAB 正在尝试创建一个名为 'sprintf('r%g',i)'
的符号变量,但实际上并不计算 sprintf
.
相反,函数语法应如下所示。此外,您应该在格式字符串中使用 %d
以确保 i
是一个整数,否则它将不是有效的变量名称。
syms(sprintf('r%d', i))
我想知道如何从已定义的字符串中创建符号变量。它实际上会帮助我们制作这段代码 运行:
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);
我希望它创建 r1
和 r2
作为两个符号变量。
这个问题是因为如果你想将字符串传递给 syms
,你需要使用 function syntax rather than the command syntax。使用您当前的语法(命令语法),MATLAB 正在尝试创建一个名为 'sprintf('r%g',i)'
的符号变量,但实际上并不计算 sprintf
.
相反,函数语法应如下所示。此外,您应该在格式字符串中使用 %d
以确保 i
是一个整数,否则它将不是有效的变量名称。
syms(sprintf('r%d', i))