2012-07-12 15 views
22

w Matlab, w jaki sposób mogę uzyskać String zawierający "GRUMPY" podano następującą deklarację:Matlab uzyskać ciąg zawierający nazwę zmiennej

GRUMPY = 500; 

ta jest zwykle o nazwie odbicie w innych językach programowania, ale nie mogę znaleźć przykładowe niego w Matlab.

Odpowiedz

38

MATLAB nie zapewnia wbudowaną funkcjonalność, ale istnieje obejście, wykorzystywany here

Zasadniczo trzeba stworzyć własną funkcję, aby to zrobić. Skorzystaj z funkcjonalności Matlaba, aby uzyskać nazwę zmiennej INPUT ARGUMENT dla funkcji.

tj.

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

Następnie

GRUMPY = 500; 
name = varname(GRUMPY) 

da ci to, czego chcą.

+0

To załatwiło sprawę! Dzięki :) – NWS

+6

To miło! Nie słyszałem wcześniej o 'inputname'. Zrobiłbym to jednak przy użyciu anonimowych funkcji dla tego przypadku: 'varname = @ (x) inputname (1)' – Drodbar

+1

@drodbar Zgoda, zakładając, że działa (nie masz Matlaba już teraz dostępnego). Oczywiście, jeśli chcesz mieć tę funkcję dostępną we wszystkich materiałach Matlaba, potrzebujesz pliku funkcyjnego znajdującego się na twojej ścieżce z tą nieanonimową funkcją. – Patrick

2

Jeśli rozumiem poprawnie należy spróbować

who GRUMPY 

lub

which GRUMPY 
+0

Żadne z nich nie tworzy ciągu. Zobacz klasę (kto GRUMPY) –

Powiązane problemy