Zuerst habe ich mir diese ausgezeichnete article bereits angesehen. Ich habe ein MATLAB-Skript namens sdp
. Ich habe ein anderes MATLAB-Skript namens track
. Ich renne track
nach sdp
, da track
einige der Ausgaben von sdp
verwendet. Um den Track zu starten, muss ich oft eine Funktion namens action
aufrufen. Ich habe action
als eine Funktion in einer separaten MATLAB-Datei definiert. Jeder Anruf dieser action
hat einige Eingänge, sagen x1,x2,x3
, aber x2,x3
sind nur "Daten", die sich nie ändern werden. Sie waren die gleichen in sdp
, gleichen in track
, und bleiben in action
gleich. Hier sind x2,x3
riesige Matrizen. Und es gibt viele von ihnen (man denke wie x2,x3,...x10
)Alternativen zu globalen Variablen: persistente Variablen und verschachtelte Funktionen in MATLAB
Der lahme Weg ist x2,x3
als global in sdp zu definieren und dann in der Spur, so kann ich mit nur x1
Aktion aufrufen. Aber das verlangsamt meine Leistung unglaublich. Wie kann ich die Aktion immer wieder mit nur x1
so aufrufen, dass es sich merkt, was x2,x3
sind? Jeder Anruf ist sehr schnell, und wenn ich das zum Beispiel inline mache, ist es super schnell.
Vielleicht kann ich einige persistente Variablen verwenden. Aber ich verstehe nicht genau, ob sie auf mein Beispiel anwendbar sind. Ich weiß auch nicht, wie ich sie benutzen soll.
Wäre der objektorientierte Programmieransatz schneller? Bin nicht sicher. Kennen Sie persistente Variablen oder verschachteln Sie diese Funktionen, vielleicht hängt das zusammen? – bissi