Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在旧版本的MATLAB中使用新工具箱?(对旧版MATLAB没有权限)_Matlab_Directory_Directory Structure - Fatal编程技术网

如何在旧版本的MATLAB中使用新工具箱?(对旧版MATLAB没有权限)

如何在旧版本的MATLAB中使用新工具箱?(对旧版MATLAB没有权限),matlab,directory,directory-structure,Matlab,Directory,Directory Structure,我想使用Matlab2013b中的函数,该函数在我需要使用的MATLAB版本中不存在(在集群上)。我尝试了几种不同的方法来重新实现函数,但是有很多依赖项,当我似乎通过这些测试时,MATLAB崩溃并显示一条很长的错误消息,包括: This error was detected while a MEX-file was running. If the MEX-file is not an official MathWorks function, please examine its source c

我想使用Matlab2013b中的函数,该函数在我需要使用的MATLAB版本中不存在(在集群上)。我尝试了几种不同的方法来重新实现函数,但是有很多依赖项,当我似乎通过这些测试时,MATLAB崩溃并显示一条很长的错误消息,包括:

This error was detected while a MEX-file was running. If the MEX-file
is not an official MathWorks function, please examine its source code
for errors. Please consult the External Interfaces Guide for information
on debugging MEX-files
不幸的是,我对C/MEX文件知之甚少

因为我的计算机上有Matlab2013b,所以我尝试将整个工具箱转移到集群上的工作目录。如果工具箱没有展开,这没有什么区别。当我将最相关的文件直接放在目录(而不是工具箱的子目录)中时,仍然会出现与上面相同的错误

首先,我想知道是否有更简洁的方法使这个工具箱覆盖原始工具箱,而不是将所有子目录和.m文件直接放在工作目录中。
其次,如果我真的用这种方式覆盖了旧的工具箱,这会起作用吗?或者MATLAB在旧版本中使用更新的工具箱时会有某种阻碍吗?

MATLAB不能保证向后兼容性。不仅仅是工具箱中的函数,工具箱函数还可能对某些不再适用的非工具箱函数所需的输入或输出进行假设

然而,如果您只向后移动了一个版本,那么通过一些调整,它可能不是不可克服的

  • 将新工具箱放在它自己的目录中,确保它位于路径上
  • 重命名/移动/取下旧版本的工具箱,以便 你肯定没有人打电话来
  • 检查2013b,尤其是有无任何标记 加上一个小三角警告——这意味着“兼容性” 考虑”。工具箱也有单独的发行说明
  • 如果可能,并且最初将新工具箱转移到集群时没有重新编译,请重新编译属于工具箱的所有MEX文件

  • 如果不知道您使用的是哪个函数/工具箱,就很难更加具体。

    在旧的东西上使用新的软件很少奏效。以前的版本有多旧?它只有2013a,以前的版本很好,非常感谢,可以试一试。抱歉没有说得更具体。。。我想使用nnet工具箱中的crossentropy函数,2013a没有。不幸的是,我不能执行“2”,因为我没有访问旧版本MATLAB的权限。