我创建了一个像这样的.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文件中编写代码,使其在打开后立即运行。答案 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
脚本,此方法将不再起作用。