-1

次のような .m ファイルを作成しました。

function M
clc
clear
T=[
1   2   3
4   5   6
7   8   9
];
surface (T)
shading interp
end

私が欲しいのはこれだけです:そのmファイルをクリックすると(mファイルが開いたときを意味します)、matlabが実行します。したがって、ユーザーが [RUN] をクリックする必要はありません。

編集: m-file を開くときにスクリプトを実行したい C# プログラムの最後にこの M ファイルを作成し、C# プログラムがグラフを表示するためだけに m-file を開くため、これが必要です。開いた後、自動的に実行してグラフを表示する方がよいでしょう。(だからユーザーは簡単にグラフを見ることができ、それを実行する必要はありません。)m-fileにコードを書いて、開いた直後に実行するなどの簡単な方法があるのではないかと思いました。

4

2 に答える 2

0

私は C# の経験がまったくありませんが、C# プログラムから matlab 関数を何らかの方法で呼び出すことが、目的を達成するための最良の方法のように思えます。ファイルを使用して、matlab を C プログラムに非常に簡単に統合できることを私は知っていmexます。

matlab と C# の統合に関するこのリンクを確認してください。おそらく役立つでしょう。C# プログラムから直接 matlab 関数を呼び出すことができる場合、ユーザーは m ファイルをクリックする必要さえありません。

ユーザーが後で実行ボタンではなくmファイルをクリックする必要があることを本当に望んでいる場合は、matlabを知らず、まだmatlabを実行していないユーザーを扱っていると想定しているので、クリックしてもらいたいMatlab ではなく、Windows (または別の OS) の m ファイル。

次に、m ファイルをクリックすると、matlab のインスタンスが開き、クリックしたファイルがエディターに表示されます。

startup.mこのファイルは、matlab のスタートアップ ディレクトリで作成または編集できます( matlab のドキュメントを参照)。これは、matlab の起動時に実行されるスクリプト ファイルです。したがってstartup.m、目的の matlab 関数 (例から) を呼び出す行を含む C# プログラムでを作成する場合M、関数は関数ファイルをクリックした後にのみ実行する必要があります。

ただし、matlab のインスタンスが既に実行されている場合、startup.mスクリプトは呼び出されず、このメソッドは機能しなくなります。

于 2013-02-23T15:11:07.827 に答える
0

ユーザーが関数を手動で実行する必要がないようにしたい場合は、バッチ ファイルで MATLAB を自動的に起動して関数を実行することができます。バッチ ファイルを作成します (テキスト エディターを使用し、.bat 拡張子を付けて保存します)。

matlab -r m

「matlab コマンド ライン パラメーター」を検索すると、詳細情報と追加オプションが見つかります。

または、MATLAB が生成する Figure を .FIG として保存し、ユーザーにそれを読み込ませることもできます。(または、pdf として保存し、MATLAB を完全に使用しないようにします)

于 2013-02-23T02:18:15.537 に答える