2014-11-05 53 views
1

這是一個更大的問題,但它可以用一個非常愚蠢的例子來舉例說明。我正在使用Matlab。假設A= 1:4B = 'A==3'(是的,B是一個在其表達式中包含A的字符)。這似乎是一個非常愚蠢的問題,我希望能夠使用諸如A(B)之類的東西來評估A(A==3)。這可能嗎?發送char作爲指令時面臨的簡單問題

因爲我正在做2^N個不同的組合,N是一個整數,我想知道是否有可能以這種方式評估它。

+1

Matlab(對不起,我剛剛意識到我沒有明確說明這一點)。 – MathUser 2014-11-05 23:11:13

+0

'eval(['A('B')'])' – Cheery 2014-11-05 23:20:19

回答

1

如果你真的堅持B = 'A==3',那麼你可以使用eval得到面膜:

A(eval(B)) 

或者與eval(sprintf('A(%s)',B)) EVAL整個語句。

不確定你是什麼意思的組合。

+0

+1不怕'eval'。可能是這裏最好的解決方案 – 2014-11-06 08:17:09

+0

我的組合意味着這個評估是在一個循環內,所以對於N = 3,我必須評估2^N = 8個不同的語句。這只是澄清,我不能親手做。 – MathUser 2014-11-07 04:04:36

+0

@MathUser Gotcha。很高興這有助於。 – chappjc 2014-11-07 04:06:28