2012-07-12 40 views
22

在Matlab中的字符串,我怎樣才能得到含有"GRUMPY"一個String所給出如下聲明:Matlab的獲取包含變量名

GRUMPY = 500; 

這通常被稱爲其他編程語言中反映,但我找不到它的一個例子在Matlab中。

回答

38

MATLAB沒有爲此提供內置的功能,但有一種變通方法,如採用here

從本質上講,你必須創建自己的函數來做到這一點。利用Matlab的功能獲取INPUT ARGUMENT的變量名稱作爲函數。

I.e.

function out = varname(var) 
    out = inputname(1); 
end 

然後

GRUMPY = 500; 
name = varname(GRUMPY) 

會給你想要的東西。

+0

這奏效了!謝謝:) – NWS 2012-07-12 14:12:50

+6

很好!我之前沒有聽說過'inputname'。儘管使用匿名函數,我會這樣做:'varname = @(x)inputname(1)' – Drodbar 2012-07-12 14:43:41

+1

@drodbar同意,假設它有效(現在沒有Matlab可用)。當然,如果你希望在你所有的Matlab中都有這個功能,那麼你需要一個函數文件駐留在你的路徑中,這個非匿名函數。 – Patrick 2012-07-12 14:59:12

2

如果我理解正確的話,你應該嘗試

who GRUMPY 

which GRUMPY 
+0

這些都不會產生字符串。見課(誰GRUMPY) – 2017-12-20 00:35:51