创建与MATLAB中内置函数同名的函数

创建与MATLAB中内置函数同名的函数,matlab,function,Matlab,Function,gpuArray是一个用于在matlab中的GPU上创建阵列的函数。在这里,我并不总是想使用gpuArray,因此我编写了一个名为gpuArray的函数(如下所示),以便在必要时返回一个标准矩阵,因此我不需要对代码进行太多更改。我已经将此函数添加到路径中。但是当我调用gpuArray函数时,它仍然返回gpuArray…有人知道为什么吗…非常感谢 function A = gpuArray(A) 您应该始终能够键入“which gpuArray”来找出Matlab将调用哪个“gpuArray”。

gpuArray是一个用于在matlab中的GPU上创建阵列的函数。在这里,我并不总是想使用gpuArray,因此我编写了一个名为gpuArray的函数(如下所示),以便在必要时返回一个标准矩阵,因此我不需要对代码进行太多更改。我已经将此函数添加到路径中。但是当我调用gpuArray函数时,它仍然返回gpuArray…有人知道为什么吗…非常感谢

function A = gpuArray(A)

您应该始终能够键入“which gpuArray”来找出Matlab将调用哪个“gpuArray”。我想它不会指向你的

为了让Matlab使用gpuArray,您应该尝试将函数的路径添加到Matlab路径中。尝试以下方法:

%add the path to *my* gpuArray function
addpath('C:\MyDirectory\SomeOtherDirectory\MyMfiles\');

祝你好运

您应该始终能够键入“which gpuArray”来找出Matlab将调用哪个“gpuArray”。我想它不会指向你的

为了让Matlab使用gpuArray,您应该尝试将函数的路径添加到Matlab路径中。尝试以下方法:

%add the path to *my* gpuArray function
addpath('C:\MyDirectory\SomeOtherDirectory\MyMfiles\');

祝你好运

您应该始终能够键入“which gpuArray”来找出Matlab将调用哪个“gpuArray”。我想它不会指向你的

为了让Matlab使用gpuArray,您应该尝试将函数的路径添加到Matlab路径中。尝试以下方法:

%add the path to *my* gpuArray function
addpath('C:\MyDirectory\SomeOtherDirectory\MyMfiles\');

祝你好运

您应该始终能够键入“which gpuArray”来找出Matlab将调用哪个“gpuArray”。我想它不会指向你的

为了让Matlab使用gpuArray,您应该尝试将函数的路径添加到Matlab路径中。尝试以下方法:

%add the path to *my* gpuArray function
addpath('C:\MyDirectory\SomeOtherDirectory\MyMfiles\');

祝你好运

这不是最好的主意。使用相同名称的多个函数最终会导致相当多的歧义,在代码上搜索+替换为具有唯一名称的备用函数不会导致这种歧义。但是如果你坚持这样做,那么你需要意识到MATLAB是如何搜索函数的。订单是(从):

  • 导入的包函数

  • 当前函数中的嵌套函数

  • 当前文件中的本地函数

  • 私人职能

  • 目标函数

  • @folders中的类构造函数

  • 当前文件夹中的函数

  • 路径上其他位置的函数,按外观顺序排列


  • 因此,为了确保您的函数优先于内置函数,它需要在该列表中位于更高的位置。可以将函数作为子函数包含在当前文件中(#2或#3)、私有函数(#4)、创建类并使用这些函数(#5和6)、将函数与调用它的代码放在同一文件夹中(#7)或确保函数位于搜索路径中比内置函数更高的文件夹中(#8)。我怀疑您的
    \Documents\MATLAB
    文件夹或您的
    gpuArray
    函数所在的文件夹路径实际上比内置函数路径低,因此上面的8失败。您可以在搜索路径中移动该文件夹的位置,或者,更好的办法是,将函数名称更改为唯一的名称,并更改调用它的代码。

    这不是最好的主意。使用相同名称的多个函数最终会导致相当多的歧义,在代码上搜索+替换为具有唯一名称的备用函数不会导致这种歧义。但是如果你坚持这样做,那么你需要意识到MATLAB是如何搜索函数的。订单是(从):

  • 导入的包函数

  • 当前函数中的嵌套函数

  • 当前文件中的本地函数

  • 私人职能

  • 目标函数

  • @folders中的类构造函数

  • 当前文件夹中的函数

  • 路径上其他位置的函数,按外观顺序排列


  • 因此,为了确保您的函数优先于内置函数,它需要在该列表中位于更高的位置。可以将函数作为子函数包含在当前文件中(#2或#3)、私有函数(#4)、创建类并使用这些函数(#5和6)、将函数与调用它的代码放在同一文件夹中(#7)或确保函数位于搜索路径中比内置函数更高的文件夹中(#8)。我怀疑您的
    \Documents\MATLAB
    文件夹或您的
    gpuArray
    函数所在的文件夹路径实际上比内置函数路径低,因此上面的8失败。您可以在搜索路径中移动该文件夹的位置,或者,更好的办法是,将函数名称更改为唯一的名称,并更改调用它的代码。

    这不是最好的主意。使用相同名称的多个函数最终会导致相当多的歧义,在代码上搜索+替换为具有唯一名称的备用函数不会导致这种歧义。但是如果你坚持这样做,那么你需要意识到MATLAB是如何搜索函数的。订单是(从):

  • 导入的包函数

  • 当前函数中的嵌套函数

  • 当前文件中的本地函数

  • 私人职能

  • 目标函数

  • @folders中的类构造函数

  • 当前文件夹中的函数

  • 路径上其他位置的函数,按外观顺序排列

  • 因此,为了确保您的函数优先于内置函数,它需要在该列表中位于更高的位置。您可以将函数作为子函数包含在当前文件中(#2或#3)、私有函数(#4)、创建一个类并使用这些函数(#5和6)、将函数与调用它的代码放在同一文件夹中(#7)或确保函数位于搜索路径中比搜索路径更高的文件夹中