2016-03-01 43 views
0

如果我有一個字符串"x1 = chyl_gi",其中x1和chyl_gi都被定義爲符號變量,則可以評估該語句。在MATLAB中反轉變量賦值

x1中鍵入將導致返回值chyl_gi
chyl_gi中鍵入將導致返回chyl_gi

如何更改"x1 = chyl_gi"的評估以便輸入chyl_gi將導致返回x1?我不能改變的變量是如何鍵入的順序,因爲我在這個格式的大的文本文件的工作:

X1 =一些變種 X2 =另一個變種 ...

+1

這是不可能的。 – Daniel

+0

所以沒有辦法扭轉分配? –

+2

不需要。您必須以更明智的方式編寫代碼,以便像這樣的扭曲是不必要的。 – beaker

回答

1

現在知道你的打算使用,我建議使用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(expr,mapping,mapping(:,2:-1:1)); 

將返回:

chyl_gi + x1*(a + b + c) 

ove優點上面我的評論中的例子是,你真的在​​這裏使用符號引擎。