我目前在使用 Matlab 时遇到了一个明显愚蠢的问题,但我就是不知道出了什么问题(或者更好的是,我认为这是错误的,但有人告诉我它应该可以工作)。
我有一个 Matlab 脚本“myscript.m”,它需要使用 C 编程函数“myfunc.c”,它又在库“mylib.dll”中编译(或“生活”)。为了让“myscript.m”访问和执行“myfunc.c”,还有一个“myfunc.m”Matlab 脚本,它在“myscript.m”中被调用。然而,“myfunc.m”是一个完全空的文件,除了一些注释(也没有特定的格式或模式)。所有这些文件都给了我,我被告知,Matlab 应该正确执行“myfunc.c”,因为“myfunc.m”充当包装器。
我遇到的问题是它当然不起作用。当我执行“myscript.m”中的行时:
output1 = myfunc(input1, input2);
我收到 Matlab 错误,说我正在尝试将脚本作为函数执行。在我看来,这是正确的,因为我将输入和请求输出发送到声明两者都没有的东西,因为“myfunc.m”是空的(注释除外,它们不是代码)。
我认为 Matlab 无法(按原样)知道我想访问“mylib.dll”中的 C 代码。我也没有头文件“mylib.h”,因此我可以使用 loadlibrary 在 Matlab 中加载库。
我的问题是,鉴于目前的描述,这种执行是否可行?有什么方法可以让它工作,或者我错过了什么?一种可能性是这是一种旧的包装格式,它目前不再起作用。
如果有人知道任何事情或有建议,他们将不胜感激。谢谢!!!
雨果