【问题标题】:Why doesn't matlab find this function call?为什么matlab找不到这个函数调用?
【发布时间】:2014-06-20 20:17:54
【问题描述】:

所以我下载了一些编译好的matlab文件。我在文件夹中看到以下文件。

makemesh.mexmaci64  
makemesh.mexw32  
makemesh.mexw64

我将这个文件夹添加到了userpath,现在path变量显示这个文件夹存在于其中。

我尝试运行这些文件附带的测试脚本,但收到此错误消息。

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

现在要解决问题,我需要找到,

  1. 是否找到函数,但数据类型错误。
  2. 它甚至没有找到函数。

如果是第一种情况。

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

我很擅长 python,但对 matlab 很陌生,所以你可以添加关于如何查询函数的帮助字符串、如何打印给定函数名称的函数签名的任何提示(如 ipython 界面中的 ?function_name)会超级有用的。

谢谢你,

【问题讨论】:

  • which makemeshcomputer('arch') 返回什么?
  • 我猜你是在 linux 上,你只有 windows 和 mac 的文件。这就是为什么 help 没有找到任何功能的原因。
  • @Daniel computer('arch') 返回 glnxa64
  • @LokeshA.R.可能是这种情况,无论如何要确认这一点?可能这就是文件扩展名的含义? w64 和 maci64?
  • 刚看到你的回复,已经有人回复了。要运行与 linux 兼容的 mex 文件,它需要扩展名为 mexa64。

标签: python matlab mex


【解决方案1】:

computer('arch') 返回代表 GnuLiNuX 64 位的 glnxa64。您已经下载了适用于 Intel (mexmaci64) 上的 Win32bit (mexw32)、Win64bit (mexw64) 和 IOS 的二进制文件。要么获取源文件以自己编译它,要么获取 linux 的二进制文件。

【讨论】:

    【解决方案2】:

    您可以使用 which 命令在您的路径中找到文件的位置。例如:

    which makemesh.mexw64
    

    应该将该文件的位置打印到终端。如果你得到

    'makemesh.mexmaci64' 未找到。

    那么就说明你的路径上不存在该文件。

    至于找出函数想要什么,我会从“帮助”开始

    help makemesh.mexw64
    

    看看这是否能给你带来任何有用的东西。

    我怀疑不知何故,您的 matlab 没有将 mex 文件识别为函数,所以我开始寻找那里。

    【讨论】:

    • 帮助,没有任何文件扩展名。
    • @Daniel 他们不必是。
    • 对于which,你是对的,从来没有注意到它可以与文件一起使用,但 mex 从不包含帮助。 help makemesh.mexw64 找不到任何东西。
    • 与带有扩展名的文件名一起打印文件的位置,如果没有扩展名,则打印'makemesh' not found。
    • @jason 那么你遇到的问题是 matlab 没有将 mex 文件识别为函数,即使它在路径上找到文件。我的猜测是文件本身有问题。
    【解决方案3】:

    您可以使用命令which <functionName> 来查看Matlab 是否正在查看您的函数。

    您是否尝试过 help <functionName> 来查看是否有任何有用的 cmets 来说明您的函数所期望的功能?

    【讨论】:

    • which makemesh 返回:'makemesh' not found.
    • also help makemesh 返回:No help found for makemesh
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多