W programie Matlab można ocenić dowolny ciąg znaków jako kod za pomocą funkcji eval
. Na przykład.Funkcja repla Matlaba
s = '{1, 2, ''hello''}' % char
c = eval(s) % cell
Czy istnieje sposób na wykonanie operacji odwrotnej; uzyskanie dosłownej reprezentacji ciągów dowolnej zmiennej? To znaczy odzyskać s
z c
? Coś
s = repr(c)
Taki repr
funkcją jest wbudowany w Pythonie, ale nie natrafiłem czymś takim w Matlab, ani nie widzę wyraźny sposób, jak wdrożyć go samodzielnie.
Najbliższy rzeczą, wiem coś takiego jak disp(c)
który wypisuje reprezentację c
, ale w formacie „czytelny” w przeciwieństwie do dosłownej formie kodu.
Nie sądzę, że można to zrobić w matlab w ten sposób, może w inny sposób. Ze względu na funkcje mantry * są obywatelami 1. klasy * możesz to zrobić w Pythonie. Tak nie jest w przypadku programu Matlab. – percusse
Dlaczego jest to czynnik ograniczający? –
Wtedy nie można podłączyć funkcji jako argumentu do innego.Możesz to zrobić na przykład za pomocą uchwytów funkcji za pomocą funkcji 'functions()'. – percusse