在 MATLAB 中反转变量赋值

Reversing the variable assignments in MATLAB

如果我有一个字符串"x1 = chyl_gi",其中x1和chyl_gi都被定义为符号变量,那么语句就可以求值

输入 x1 将返回值 chyl_gi
输入 chyl_gi 将返回 chyl_gi

如何更改 "x1 = chyl_gi" 的计算,以便输入 chyl_gi 将导致返回 x1?我无法更改变量的键入顺序,因为我正在使用这种格式的大型文本文件:

x1 = 一些变量 x2 = 另一个变量 ...

现在知道您的预期用途,我建议使用 subs 功能。开始解析您的文本文件以获取映射:

syms x1 x2 chyl_gi chyl_gj a b c
mapping={x1,chyl_gi;x2,chyl_gj} %represents x1=chyl_gi and x2=chyl_gj;

还有一些示例表达式:

expr=x1+chyl_gi*(a+b+c);

现在您可以简单地使用 subs 函数:

subs(expr,mapping,mapping(:,2:-1:1));

哪个returns:

chyl_gi + x1*(a + b + c)

与我上面评论中的示例相比,优势在于,您在这里真正使用了符号引擎。