5

matlab エディターとコマンド ウィンドウのタブ サイズを自動的に取得する方法はありますか? はい、設定ウィンドウを開いて自分で調べることができますが、自動化してほしいです。実際、これは以下のスクリーンショットにあるユーザー設定の取得に一般化できると思います。

ここに画像の説明を入力

4

1 に答える 1

7

私は解決策をすぐに見つけました。掘り下げた後、このリンクを共有するのが最善だと思いました:

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

だからあなたがすることは次のとおりです:

  1. 設定ファイルを開き、読みたい設定を探します。

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

    私の場合、それは行CommandWindowSpacesPerTab=I4でありEditorSpacesPerTab=I4、有望に見えました。I は型 (整数) を表すと思います。

  2. 値をロードしてテストします。

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

    私の場合:

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

この質問との重複も少しあります: matlab での設定の保存

編集:どうやら、この関数を使用すると、設定のデフォルト値が読み取られません。つまり、設定の値をまだ変更していない場合、値は設定ファイルに保存されないため、この方法でロードすることはできません。関数は 0 を返すだけです。今のところ、このケースを手動で検出しています。

if loadedpref==0
    set default
end

EDIT2: Linuxコマンドラインでmatlabも使用します。これには独自のタブ設定があります(通常はデフォルトで8に設定されています)。この状況を検出するために、次を使用しました。

function retval = isCommandWindowOpen()
    jDesktop = com.mathworks.mde.desk.MLDesktop.getInstance;
    retval = ~isempty(jDesktop.getClient('Command Window'));
end
于 2012-05-30T13:59:27.650 に答える