为什么matlab找不到这个函数调用?

3 投票
3 回答
924 浏览
提问于 2025-04-18 10:33

我下载了一些已经编译好的matlab文件。在一个文件夹里,我看到了以下文件。

makemesh.mexmaci64  
makemesh.mexw32  
makemesh.mexw64

我把这个文件夹添加到了用户路径中,现在路径变量显示这个文件夹已经存在了。

我尝试运行一个随这些文件一起提供的测试脚本,但出现了这个错误信息。

Undefined function 'makemesh' for input arguments of type 'struct'.

现在为了排查问题,我需要找出:

  1. 是找到了这个函数,但数据类型不对。
  2. 根本找不到这个函数。

如果是第一种情况。

1a. 我该如何找出这个函数期望的正确数据结构是什么。

我对python很熟悉,但对matlab还是新手,所以如果你能提供一些关于如何查询函数帮助信息的技巧,比如如何打印出给定函数名的函数签名(就像在ipython界面中用?function_name那样),那就太有用了。

谢谢你,

3 个回答

1

你可以通过使用哪个命令来找到文件在你路径上的位置。例如:

which makemesh.mexw64

这条命令应该会在终端上显示那个文件的位置。如果你看到

'makemesh.mexmaci64' not found.

这就意味着在你的路径上找不到这个文件。

至于如何了解这个函数需要什么,我建议你先试试“help”

help makemesh.mexw64

看看能否得到一些有用的信息。

我怀疑你的matlab可能没有把这个mex文件识别为一个函数,所以你可以从这里开始查找问题。

1

你可以使用命令 which <functionName> 来查看 Matlab 是否能找到你的函数。

你有没有试过 help <functionName> 来看看有没有关于你的函数的有用说明?

3

computer('arch') 这个命令返回 glnxa64,意思是它是在64位的GnuLiNuX系统上运行。你下载了适用于32位Windows(mexw32)、64位Windows(mexw64)和Intel的IOS(mexmaci64)的程序文件。你要么自己获取源文件编译,要么直接下载适用于Linux的程序文件。

撰写回答