2013-02-22 28 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