2009-04-11 9 views
5

私はちょうどMatlabで何かを試し始めました。私はVimのインターフェースに慣れていたので、私は可能な限りMatlabのエディタを離れようとします。私が悩んでいるのは、.mファイルを起動するたびに、それがインターフェイスを呼び出すということです。Matlab on cmd(winxp)

コマンドラインからtest.mを起動し、Matlabの環境で通常行うように、cmdで出力を出力する方法はありますか? "Matlabシェル"(Pythonのように、Matlabのみ)のようなもの? Linux環境で

答えて

10

。 Linuxでは、これをコマンドプロンプトで入力すると、matlabは同じコマンドウィンドウでテキストモードで実行されます。だから、あなたが望む "matlabシェル"を手に入れることになります。ウィンドウで、matlabがインストールされているディレクトリにcdして、同じコマンドを入力します。 Matlabのデスクトップのすべての鐘と笛がなく、取り除かれたmatlabコマンドラインウィンドウが開きます。

私の個人的な意見では、統合されたデバッガを備えたmatlabエディタはあなたの友人です。それはemacsキーバインディングも持っています。また、matlabをテキストモードで実行すると、コマンドを実行してmatlabデスクトップで結果を確認する方が簡単です。あなたが本当にテキストモードを使用したい唯一の時間は、あなたのMATLABのコードが実行に時間がかかる場合、あなたは最終的な結果にのみ興味がある場合です。または、複数のインスタンスのmatlabを実行している場合。テキストモードではメモリが少なくて済み、Linuxではコマンドラインから簡単に起動してバックグラウンドに入れることができます。

実際、matlabのコマンドライン引数を確認してください。 matlabに単一の関数を実行させて、la perlを実行させるか、スクリプトを次のようにmatlabにリダイレクトするような、他の面白いことをすることができます:matlab < script.m

0

、MATLABは

matlab -nosplash -nodesktop 

テキストモードで起動することができますが、これはWindows上で動作しません。現在のシェルで起動します。 Windowsでは、新しいテキストのみのウィンドウが開きます。 Windows上の現在のコンソール内で実行する方法がないことは知っています。

おそらく、http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/ref/matlabwindowsでそれを実行する方法があります。 .shtml & http://www.google.com/search?rlz=1C1GGLS_enUS302US311 & sourceid = chrome & ie = UTF-8 & q = matlab + command + line + windows '>オートメーションサーバーモード。

本当に必死ならば、仮想マシンを作ってそこにLinuxをインストールすることもできます。それで、Matlabとうまく動作するようにvimを設定する方法があると思います(私はemacsの人ですが、emacsの解決策があります)。

+0

はい、Windowsでは機能します。これは、単純なmatlabコマンドウィンドウを開きます。 – Dima

5

あなたは本当にmファイルデバッガなしで開発作業をしたいですか?私にはあなたが事実上些細なプログラムに限定されているようです。非常に簡単な学習曲線の後、私はあなたがMatlabの統合されたデバッガが素晴らしいと思うと思います(そして私はVSの人です)。

そうすることを強くお勧めする場合は、mファイルを実行可能にするようにコンパイルすることをお勧めします。それは(安くない)matlab compilerへのアクセスを必要とするでしょう。

matlabのバージョンが6.5まで配布されているコンパイラと、matlab 7+とともに配布されているコンパイラ(コンパイラのバージョン番号が分からない)には大きな違いがあることに注意してください。 6.5では、コンパイラがcコードを生成しました。これは編集して別々にコンパイルすることができます。コンパイルされたプログラムを実行すると、ほぼすべてのMATLAB機能を網羅した​​という仮想Matlabマシン上で実際に実行されます。それは大規模なものです - MCRのインストーラ(インストーラ!)は前回チェックしたときに130Mの重み付けをしました。
これに関するいくつかの議論はまだニュースグループで見つけることができますが、それは今重要ではありません。実際、MCRのアプローチは、求めるものに近いと思われます。 Windows上で完璧に動作matlab -nosplash -nodesktop私にとって

そして、ところで、 - それはコンソールとしてMATLABを起動し、それはあなたのテキストエディタデバッガの両方を奪う...

2

を私はどうなるのかされています。

  1. スタートMATLAB
  2. は開けないでください。MATLAB内メートルファイル
  3. オープン私は、これはMATLABとして働かない理由何らかの理由が気にはならないと想像することはできません

いつものようにMATLABの中からお好みのエディタでファイル

  • 実行機能ファイルの編集に使用されたもの。

    これはあなたに「シェル」を与えるわけではありませんが、GUI全体ですが、それが利用可能である場合、なぜそれを望んでいないのかは考えられません。これは、LinuxとWindowsの両方で動作します

    matalb -nodesktop -nosplash

    :このようにMathWorks社のMATLABを起動し、あなたの質問に答えるために

  • +1

    コンピュータが遅い場合は、GUI全体が必要ない場合があります。 – Dima

    0

    私はKiguraiと同じ問題がありました。 Pythonで

    :monscript.batで

    import os 
    
    os.chdir('W:\\monrépertoire') 
    
    os.spawnl(os.P_NOWAIT, 'monscript.bat') 
    

    :私はこの解決策を見つけたので、私は、Pythonを使ってMATLABを駆動するのに必要な

    ないくらいのデバッグが必要になったときに実際に例があります
    matlab.exe -r interp_3D -nodesktop –nosplash 
    
    0

    と呼び出しの間にMatlabの状態は保持されます。 1つ(唯一の?)の例は、Emacs org-modeです。 literate programming etcに従ったコードでインターリーブされたテキストを書くのに使用できます。 Matlabやpublish codeのコメントをHTMLやLaTeXとすることは可能ですが、Emacsの快適さを残す必要があります。

    Matlabエンジンを使用してstdinで受信したコマンドを評価し、その結果をダンプするstandalone program availableがあります。しかし、この特定のバージョンでは、if/else/endやfor/endのような複数行コマンドのサポートが欠けています。これはすべてを一度に期待するengEvalStringの制限です。 ugly workaround availableがあるため、org-modeには十分にusableになります。

    #+begin_src matlab :session *MATLAB* :exports none :cache no :results value 
    if 3>1 
    'wow!!!' 
    end 
    #+end_src 
    
    #+RESULTS: 
    : wow!!!