2012-05-30 12 views
5

Gibt es eine automatische Methode zum Abrufen der Tabulatorgröße des Matlab-Editors und des Befehlsfensters? Ja, Sie können einfach das Einstellungsfenster öffnen und selbst nachsehen, aber ich möchte es automatisieren. Eigentlich denke ich, dass dies verallgemeinert werden könnte, um beliebige dieser Benutzereinstellungen in der folgenden Screenshot abrufen.Abrufen der Tabulatorgröße über die Befehlszeile

enter image description here

Antwort

7

fand ich die Lösung ziemlich schnell und nach in Graben dachte es am besten auf diesen Link zu teilen:

http://undocumentedmatlab.com/blog/changing-system-preferences-programmatically/

Also, was Sie tun, ist:

  1. öffnen up die Einstellungsdatei und suchen Sie nach der Einstellung, die Sie lesen möchten:

    edit(fullfile(prefdir,'matlab.prf')); 
    

    In meinem Fall waren es die Linien und EditorSpacesPerTab=I4, die vielversprechend aussahen. Ich denke das I steht für den Typ (Integer).

  2. Testen Sie es aus, indem Sie den Wert geladen:

    com.mathworks.services.Prefs.get<type>Pref(<pref-name>) 
    

    In meinem Fall:

    >> com.mathworks.services.Prefs.getIntegerPref('EditorSpacesPerTab') 
    ans = 
    
        4 
    

Es gibt auch eine kleine Überlappung mit dieser Frage: Saving settings in matlab

EDIT: Offenbar, wenn Sie diese f wird der Standardwert der Einstellung nicht gelesen. dh wenn Sie den Wert der Einstellung noch nicht geändert haben, wird der Wert nicht in der Einstellungsdatei gespeichert und kann daher nicht auf diese Weise geladen werden. Die Funktionen liefern nur 0. Für jetzt, ich bin diesen Fall manuell Erkennung:

if loadedpref==0 
    set default 
end 

EDIT2: ich auch Matlab unter Linux Kommandozeile verwenden, die eine eigene Registerkarte Einstellung hat (in der Regel bis 8 vorbelegt). Um diese Situation zu erkennen, habe ich folgendes verwendet:

function retval = isCommandWindowOpen() 
    jDesktop = com.mathworks.mde.desk.MLDesktop.getInstance; 
    retval = ~isempty(jDesktop.getClient('Command Window')); 
end 
Verwandte Themen