-1

我创建了一个这样的 .m 文件:

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

我想要的是:当点击那个 m 文件时(我的意思是当 m 文件打开时),matlab 运行它。因此用户无需单击“运行”。

编辑:我希望在打开 m 文件时运行脚本我需要这个,因为我在 C# 程序的末尾创建了这个 M 文件,而 C# 程序打开 m 文件只是为了显示图形。所以最好打开后自动运行并显示图形。(所以用户很容易看到图表,不需要运行它。)我认为可能有一种简单的方法,比如在 m-file 中编写代码,使其在打开后立即运行。

4

2 回答 2

0

我根本没有使用 C# 的经验,但在我看来,实现你想要的最好方法是以某种方式从 C# 程序中调用 matlab 函数。我知道 matlab 可以很容易地使用mex文件集成到 C 程序中。

您应该查看有关将 matlab 与 C# 集成的链接,也许它可以帮助您。如果您能够直接从 C# 程序调用 matlab 函数,用户甚至不必单击 m 文件。

如果您真的希望用户必须单击 m 文件,而不是之后单击运行按钮,我假设您正在处理的用户不知道 matlab,因此还没有运行 matlab,所以您希望他们单击Windows(或其他操作系统)中的 m 文件,而不是 Matlab 中的 m 文件。

然后,通过单击 m 文件,应该打开一个 matlab 实例,单击的文件在编辑器中。

您可以在 matlab 的启动目录中创建或编辑该startup.m文件(参见matlab 文档)。这是一个在 matlab 启动时执行的脚本文件。因此,如果您startup.m在 C# 程序中创建一个包含调用所需 matlab 函数的行(M来自您的示例),则该函数应仅在单击函数文件后执行。

但是,如果 matlab 的实例已经在运行,startup.m则不会调用该脚本,并且该方法将不再起作用。

于 2013-02-23T15:11:07.827 回答
0

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

matlab -r m

如果您搜索“matlab 命令行参数”,您可以找到更多信息和附加选项。

或者,您可以将 MATLAB 生成的图形保存为 .FIG 并让用户加载。(或另存为 pdf 并避免让他们完全使用 MATLAB)

于 2013-02-23T02:18:15.537 回答