2012-06-21 67 views
3

這是我在想什麼的想法例如:操作符可以存儲在變量中嗎?

test = 'x > 0'; 

while str2func(test) 
    Do your thing 
    x=x-1; 
end 

是否有可能整個邏輯運算存儲在這樣的變量?

當然str2func會打破這裏。如果它可能這個功能可能是別的東西。而且我只爲test變量內容添加了撇號,因爲我想不出還有什麼是存儲方法。

向函數等發送參數時,我可以看到它有用。但大多數情況下,我只是想知道,因爲我從來沒有見過用任何編程語言完成過。

回答

8

可以存儲功能的文本表示在一個變量和評價它,例如

test = 'x > 0'; 
eval(test) 

應導致取決於X的值1或0。

但是,你不應該使用eval出於太多的原因 - 這裏經常覆蓋SO,因爲我打擾重複。您應該熟悉功能和功能句柄。例如

test = @(x)x>0 

使得test把手以在那裏測試其參數是否大於0或不是一個函數。

與編譯語言相比,在運行時解釋的許多語言具有相似的功能。

相關問題