使用自定义字符串来定义符号变量
问题描述:
我想知道如何从已定义的字符串中创建符号变量。它实际上将帮助我们使这个代码的运行:使用自定义字符串来定义符号变量
N=2
for i=1:N
syms sprintf('r%g',i)
end
运行它后,出现此错误:使用symfun.parseString(50行)
不是有效的变量名
错误。
syms错误(第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))
它的工作,谢谢。 –