11
Muszę przekonwertować ciąg znaków, taki jak str='x^2+3'
na funkcję. Rozwiązaniem jest uzyskanie funkcji inline, f=inline(str)
, ale nie będzie ona obsługiwana w przyszłych wersjach.Jak przekonwertować ciąg na uchwyt funkcji w programie Matlab?
Obejście problemu: f=eval(['@(x)',f])
, ale nie wydaje się być opcją schludną.
Funkcja str2func
nie działa, ponieważ wymaga tylko nazwy istniejącej funkcji.
W PO twierdził, że 'str2func' nie będzie działać, można wspomnieć, że z' [ „@ (x)” str] 'rzeczywiście stworzyć funkcję, która jest istniejący * * potem i przekonuje' str2func' wykonać swój obowiązek. Tylko sugestia, usuniemy komentarz później. – thewaywewalk
Dzięki za informację zwrotną, na razie zostawię komentarz tak, jak to wyjaśnia. – am304
Można również powiedzieć, że '['@ (x)' str]' jest "nazwą" anonimowej funkcji, która jest tworzona w locie –