Ich möchte MATLAB feval mit Python verwenden

Definition der Python-Funktion

In MATLAB war es gut, alle Funktionen, die Sie verwenden möchten, am Ende in die Funktion einzufügen, aber in Python müssen Sie sie definieren, bevor Sie die Funktion in der Funktion verwenden.

Ich habe es für Python umgeschrieben, weil ich in MATLAB so etwas wie Paval (Handle-Funktion?) Verwenden wollte. Es sieht hässlich aus, aber ich denke, es ist nützlich, wenn Sie dieselbe Variable wiederholt in verschiedene Funktionen einfügen möchten.

test_function.py


fx=0
fp=10000
fL=10
fW=60
fq=20
fdip=5
fnu=0.25

def chinnery(fu,x,p,L,W,q,dip,nu):
        
    def feval(funcName, *args):
        return eval(funcName)(*args)

    u=feval(fu, fx, fp, fq, fdip, fnu)\
        - feval(fu, fx, fp-fL, fq, fdip, fnu)\
            - feval(fu, fx, fp, fq-fW, fdip, fnu)\
                + feval(fu, fx, fp-fL, fq-fW, fdip, fnu)
    return u            

          
def myfunc(a,b,c,d,e):
    dp=a+b*c+d-e
    return dp
    
def myfunc2(a,b,c,d,e):
    dp3=a*b-c*d-e 
    return dp3
    
up=chinnery('myfunc', fx, fp, fL, fW, fq, fdip, fnu)

print(up)
#output: 600.0

Durch einfaches Ändern der ersten Variablen (Name der Funktion in Funktion?) Der Funktion chinary ist es möglich, nur die Funktion zu ändern, während die Kombination mehrerer Variablen beibehalten wird. Derzeit sind nur myfunc und myfunc2 verfügbar, Sie können jedoch beliebig viele erhöhen.


 def feval(funcName, *args):
        return eval(funcName)(*args)

In feval wird der Funktionsname als erste Variable verwendet, und die Anzahl der Variablen nach der zweiten Variablen ist variabel.

Vielleicht gibt es einen bequemeren Weg.

Recommended Posts

Ich möchte MATLAB feval mit Python verwenden
Ich möchte Temporäres Verzeichnis mit Python2 verwenden
Ich möchte mit Python debuggen
Ich möchte ein Glas aus Python verwenden
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
[Python] Ich möchte die Option -h mit argparse verwenden
Ich möchte einen Platzhalter verwenden, den ich mit Python entfernen möchte
Ich möchte ein Spiel mit Python machen
Ich möchte Ceres Solver aus Python verwenden
Ich möchte -inf nicht mit np.log verwenden
#Unresolved Ich möchte Gobject-Introspection mit Python3 kompilieren
Ich möchte ip vrf mit SONiC verwenden
Ich möchte APG4b mit Python lösen (Kapitel 2)
Ich möchte mit Python in eine Datei schreiben
Ich möchte die Optimierung mit Python und CPlex behandeln
Ich wollte die Python-Bibliothek von MATLAB verwenden
Ich möchte mit Python-Datenklasse nach hinten erben
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte Lambda mit Python auf Mac AWS!
Ich möchte R-Datensatz mit Python verwenden
Ich möchte einen Quantencomputer mit Python betreiben
Python: So verwenden Sie Async mit
Ich möchte ○○ mit Pandas machen
Ich möchte Daten mit Python analysieren können (Teil 3)
Ich möchte eine andere Version von Python mit pyvenv angeben
Ich möchte Daten mit Python analysieren können (Teil 1)
Ich möchte Daten mit Python analysieren können (Teil 4)
Ich möchte Daten mit Python analysieren können (Teil 2)
Ich möchte automatisch an Online-Kursen mit Python + Selen teilnehmen!
Ich möchte eine virtuelle Umgebung mit Jupyter Notebook verwenden!
[Python] Ich möchte nur den Index verwenden, wenn ich eine Liste mit einer for-Anweisung schleife
Ich möchte Objekte mit OpenCV erkennen
Ich möchte einen Blog mit Jupyter Notebook schreiben
Ich wollte ABC160 mit Python lösen
Ich möchte eine Python-Umgebung erstellen
Ich möchte Linux auf dem Mac verwenden
Ich möchte eine Pip-Installation mit PythonAnywhere durchführen
[Einführung in Python] Verwenden wir foreach mit Python
Ich möchte IPython Qt Console verwenden
Ich wollte ABC172 mit Python lösen
Ich möchte das Wetter mit LINE bot feat.Heroku + Python wissen
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
Ich möchte den vollständigen Text mit elasticsearch + python durchsuchen
Ich möchte eine externe Bibliothek mit IBM Cloud-Funktionen verwenden
Ich möchte sowohl den Schlüssel als auch den Wert des Python-Iterators verwenden
[Einführung] Ich möchte mit Python einen Mastodon-Bot erstellen! 【Anfänger】
Ich möchte wirklich GitHub Flavored Markdown (GFM) mit Pelican verwenden!
Ich kenne? Datenanalyse mit Python oder Dingen, die Sie mit numpy verwenden möchten, wenn Sie möchten
Ich möchte Dunnetts Test in Python machen
Ich habe versucht, lightGBM, xg Boost mit Boruta zu verwenden
Ich möchte es mit Python Lambda Django machen, aber ich werde aufhören
Ich möchte Twitter mit Python twittern, bin aber süchtig danach
Ich wollte den NOMURA Contest 2020 mit Python lösen
Ich möchte mich mit Schlüsselwortargumenten von Python merken