2013-02-22 105 views
-1

我創建了一個.m文件是這樣的:.m文件情節自動

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

ALL我想是這樣的:當點擊該M文件(M文件打開時,我的意思),MATLAB RUN它。所以用戶不需要點擊RUN。

編輯:我想在打開m文件時運行腳本 我需要這個,因爲我在C#程序的末尾創建了這個M文件,並且C#程序打開m文件來顯示圖形。因此打開它後自動運行並顯示圖形會更好。 (所以用戶很容易看到圖形,並且不需要運行它。) 我認爲可能有一種簡單的方法,比如在m文件中編寫代碼,這會使它在打開後立即運行。

+0

爲什麼-1 ?? !!而不是回答。問題不清楚?!或者它沒有顯示任何努力或研究?!問題是什麼?! – bunNyBug 2013-02-23 01:08:35

+0

請確切說明你的意思。你想在matlab啓動時運行腳本嗎?或者你想讓腳本在打開文件時立即運行?爲什麼不先按「運行」,或者只是在命令窗口中鍵入函數的名稱,然後回車? – ThijsW 2013-02-23 01:29:55

+0

@ThijsW我希望腳本在打開時運行。m文件 我需要這個,因爲它是我在C#程序的末尾創建了這個M文件,並從C#打開它,所以打開它後自動運行並顯示圖形會更好。 (所以用戶很容易看到圖形,並且不需要運行該圖形。) – bunNyBug 2013-02-23 11:22:55

回答

0

如果您試圖避免讓用戶手動運行該功能,您可以讓批處理文件自動啓動MATLAB並運行該功能。 創建一個批處理文件(使用文本編輯器和一個.bat擴展名保存)

matlab -r m 

如果搜索"matlab command line parameters",你可以找到更多的信息和附加選項。

或者,您可以將MATLAB生成的圖保存爲.FIG並讓用戶加載該圖。 (或保存爲pdf,並避免讓他們一起使用MATLAB)

+0

我想要的是:當點擊.m文件(我的意思是當我打開.m文件時),運行它。所以用戶不需要點擊RUN。 – bunNyBug 2013-02-23 12:14:27

+0

看到這篇文章,可以與我的建議一起使用。 http://stackoverflow.com/questions/1469764/run-command-prompt-commands – 2013-02-25 17:30:32

0

我對C#沒有任何經驗,但在我看來,最好的方式來實現你想要的是以某種方式調用MATLAB中的matlab函數C#程序。我知道matlab可以很容易地使用mex文件集成到C程序中。

你應該看看這個鏈接integrating matlab with C#,也許它可以幫助你。如果你能夠直接從C#程序調用matlab函數,用戶甚至不必點擊m文件。

如果你真的想讓用戶不得不點擊m文件,而不是之後的運行按鈕,我假設你正在處理不知道matlab的用戶,因此沒有matlab已經運行,所以你希望他們在Windows(或其他操作系統)中單擊m文件,而不是在Matlab中。

然後,通過單擊m文件,應打開一個matlab實例,並在編輯器中單擊該文件。

您可以在matlab的啓動目錄中創建或編輯startup.m文件(請參閱matlab documentation)。這是一個在matlab啓動時執行的腳本文件。所以如果你在你的C#程序中創建了一個startup.m,它包含一行調用你想要的matlab函數的行(你的例子中爲M),該函數只有在單擊函數文件後才能執行。

如果,但是matlab的一個實例已經運行,startup.m腳本將不會被調用,並且此方法不再起作用。

+0

現在在我的程序用戶不要點擊m文件。 C#程序打開m文件。我認爲可能有一種簡單的方法,比如在m文件中編寫代碼,這會使它在打開後立即運行。但似乎並非如此。 非常感謝您的努力。 如果我的聲望讓我贊成,我很樂意爲你的答案投票! – bunNyBug 2013-02-23 19:41:28