Ein Kollege hat eine MATLAB startup.m
Datei, die interaktiven Code enthält (ruft den Befehl questdlg
auf, um ihn zu fragen, in welchem Projektverzeichnis er arbeiten möchte).Ermitteln, ob MATLAB startup.m auf einem Worker ausgeführt wird
Dies funktioniert gut für ihn, wenn MATLAB direkt ausgeführt wird. Er muss jedoch auch den MATLAB-Code parallel ausführen, nachdem er eine matlabpool
gestartet hat.
Beim Anfahren, die Arbeiter in den matlabpool
laufen seine startup.m
Datei, immer an die questdlg
und dann hängen (unendlich oder bis Ctrl C).
Eine einfache Lösung ist, nur den interaktiven Code von seinem startup.m
loszuwerden, da es nicht wirklich wesentlich ist.
Aber ist es eine Möglichkeit zu erkennen, ob diese startup.m
wird von einem Arbeiter Anfahren ausgeführt werden - etwas ähnliches wie isdeployed
oder ismcc
? Dann könnte er den interaktiven Code, den er für nützlich hält, behalten, aber nur ausführen, wenn er keinen Arbeiter startet.
Der Befehl getCurrentWorker
schien wie es sein könnte, was benötigt wurde, aber ich glaube, dass funktioniert nur während der Ausführung einer Aufgabe, anstatt beim Start.
Danke @Edric. Persönlich würde mir etwas undokumentiertes in Ordnung sein, wenn es die "richtige" Art und Weise wäre, es zu tun - aber etwas dokumentiert, das im Grunde funktioniert, ist auch hier in Ordnung. Klingt wie 'usejava' funktioniert - danke! –