【问题标题】:Use a custom string to define symbolic variable使用自定义字符串定义符号变量
【发布时间】:2017-01-23 02:21:55
【问题描述】:

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

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

运行后出现此错误:

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

符号错误(第 166 行)
[名称,变量] = symfun.parseString(x);

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

【问题讨论】:

    标签: string matlab for-loop symbolic-math


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-01-05
      • 2023-03-09
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2018-11-28
      • 2021-02-24
      相关资源
      最近更新 更多