2017-01-22 297 views
0

我想知道如何从已定义的字符串中创建符号变量。它实际上将帮助我们使这个代码的运行:使用自定义字符串来定义符号变量

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

运行它后,出现此错误:使用symfun.parseString(50行)
不是有效的变量名

错误。

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

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

回答

2

问题是因为如果你想传递一个字符串到syms你需要使用function syntax rather than the command syntax。使用你当前的语法(命令语法),MATLAB试图创建一个名为'sprintf('r%g',i)'的符号变量,但实际上并没有评估sprintf

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

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

它的工作,谢谢。 –