.m文件自动绘图

时间:2013-02-22 22:53:25

标签: matlab plot

我创建了一个像这样的.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文件时运行脚本 我需要这个,因为我在C#程序结束时创建了这个M文件,而C#程序打开m-file只是为了显示图形。所以最好在打开它之后自动运行并显示图形。 (因此用户可以轻松查看图表,无需运行它。) 我认为可能有一种简单的方法,例如在m文件中编写代码,使其在打开后立即运行。

2 个答案:

答案 0 :(得分:0)

如果您试图避免让用户手动运行该功能,您可以让批处理文件自动启动MATLAB并运行该功能。 创建批处理文件(使用文本编辑器并使用.bat扩展名保存)

matlab -r m

如果您搜索"matlab command line parameters",可以找到更多信息和其他选项。

或者,您可以将MATLAB生成的数字保存为.FIG并让用户加载该数字。 (或者保存为pdf并避免让他们一起使用MATLAB)

答案 1 :(得分:0)

我根本没有使用C#的经验,但在我看来,实现你想要的最好的方法是以某种方式从C#程序中调用matlab函数。我知道使用mex文件可以很容易地将matlab集成到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脚本,此方法将不再起作用。